У меня проблема с обменом файлами между версией моего приложения для OSX и версией приложения iOS при сохранении в общей папке iCloud.
Версия iMa c может читать любой файл из общая папка. Однако версия iOS не может прочитать файлы, сохраненные из версии OSX.
При вызове contentOfDirectory на iOS
FileManager.default.contentsOfDirectory(at: mmFile.containerUrl!, includingPropertiesForKeys: nil, options: [])
я получаю URL-адреса обратно как:
file: ///private/var/mobile/Library/Mobile%20Documents/iCloud~xxx/Documents/Untitled.render-z, file: /// private / var / mobile / Library / Mobile% 20Documents / iCloud ~ xxx / Documents / .refract.render-z.icloud
Где первый файл был сохранен в iOS и загружен правильно, второй из OSX имеет «.» префикс и постфикс ".icloud" и не могут быть загружены.
Я сохраняю файлы с тем же кодом:
stringData.write(to: url(), atomically: true, encoding: .utf8)
Кодировка не имеет значения, то же поведение при использовании .ascii или .utf8 et c.
Когда я пытаюсь прочитать такой файл в iOS, я получаю содержимое обратно, как
bplist00Ó\NSURLNameKey_NSURLFileSizeKey_NSURLFileResourceTypeKey_2spheres.render-z
Я не могу понять это! Кажется, все права и свойства plist верны, и совместное использование базы данных iCloud также работает нормально.