Как открывать и извлекать файлы в iCloud Drive на iOS8, предоставляемом приложением OS X

Я могу хранить файлы в iCloud Drive программно из приложения OS X (10.10) и из приложения iOS (8.4), используя общий идентификатор повсеместности (например, iCloud.com.mycompany.CommonFiles) с одним и тем же Apple ID.

В приложении OS X я могу идентифицировать или извлекать все файлы в iCloud Drive, независимо от того, где они были созданы (локально или удаленно), используя этот «общий» идентификатор повсеместности и NSFileManager contentsOfDirectoryAtURL: и т. Д.

Однако в iOS 8, хотя приложение iOS, кажется, помещает файлы в нужное место в iCloud Drive (так, чтобы они были видны в OS X Finder и извлекались в OS X), оно может ТОЛЬКО идентифицировать и извлекать файлы, которые оно сгенерировало. - файлы в iCloud Drive, созданные на любом другом устройстве, невидимы для приложения iOS.

Что мне нужно сделать в приложении iOS, чтобы увидеть и использовать (программно, а не через UIDocumentPicker) ВСЕ повсеместное содержимое каталога Documents, созданное под одним и тем же универсальным идентификатором?

(Раньше это работало в старом методе «Документы и данные» - до iCloud Drive - где к «общему» идентификатору повсеместности добавлялся префикс с идентификатором нашей компании - теперь он заменен на «iCloud». После того, как пользователи подключились к iCloud Drive, однако этот подход к общему обмену файлами между приложениями на OS X и iOS был утерян.)


person JBJr    schedule 31.08.2015    source источник
comment
Примеры приложений по ссылке ниже используют iCloud, а файлы резервных копий можно выгружать / загружать в / из iCloud из любого приложения. Игнорируйте биты Core Data, но попробуйте создать приложения и попробуйте панель резервного копирования, чтобы узнать, как получить доступ к контейнеру iCloud приложений для загрузки / скачивания файлов. ossh.com.au/design-and-technology/software-development/   -  person Duncan Groenewald    schedule 02.09.2015
comment
Спасибо, Дункан. Рассказал мне о моей проблеме с iCloud Drive. Вы очень помогли.   -  person JBJr    schedule 11.09.2015


Ответы (1)


Вам следует только перечислять файлы в папке iCloud Drive вашего приложения, используя NSMetadataQuery. Файлы в этом каталоге будут отображаться только после того, как вы специально попросили их загрузить, и для этого вам необходимо знать, что они существуют в облаке (что вы можете узнать только с помощью NSMetaDataQuery).

См., Например, https://www.raywenderlich.com/12816/icloud-and-uidocument-beyond-the-basics-part-3 и для получения дополнительных сведений https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/SpotlightQuery/.Concepts/QueryingMetadata.html.

person MrMage    schedule 12.03.2016