(iCloud) Как программно выполнить резервное копирование/восстановление данных для всех приложений, как это делает iTunes?

Я хотел бы создавать резервные копии и восстанавливать файлы (или информацию другого типа, такую ​​как ключ-значение, информацию на основе транзакций, подобную SQL) НЕ ТОЛЬКО для моего приложения, но и для всех других приложений, использующих iCloud.

Я новичок в iCloud и прочитал всего несколько документов, но кажется, что API-интерфейсы iCloud предназначены только для границы одного приложения (конечно, я понимаю, что есть возможность обмена информацией между «группой» приложений).

Я хочу сделать резервную копию и восстановить почти все. Как я могу это сделать? (Некоторые приложения делают это, например http://www.copytrans.net/copytranscontacts.php http://www.macrumors.com/2012/05/18/elcomsofts-phone-forensics-software-offers-near-real-time-access-to-icloud-backups/)

Я проверил, что некоторые файлы мобильного приложения хранятся в каталоге «~/Library/Application\ Support/MobileSync/Backup», но есть только некоторые файлы из всех файлов, фактически хранящихся в iCloud.

И я протестировал CloudKit, но он контролирует только собственные данные приложения.

Заранее спасибо.


person Locke    schedule 14.08.2014    source источник
comment
@rmaddy Я так и думал, но есть приложения для импорта/экспорта контактов из/в iCloud. Кажется, есть некоторые решения с обратной инженерией HTTP, анализируя сайт iCloud.com для контактов и напоминаний. И прежде чем отрицать чей-то вопрос как бесполезный, лучше подумать о других возможностях. Я видел ответ Дженксона на это? stackoverflow.com/questions/10661623/ И Я надеюсь увидеть положительный ответ. Спасибо   -  person Locke    schedule 14.08.2014
comment
Есть разница между доступом к контактам (общедоступный API) и всеми данными приложения! Ваше предложение - просто большое нет с точки зрения конфиденциальности данных. Это не сработает, и на то есть веская причина.   -  person Eiko    schedule 19.08.2014
comment
@Эйко, спасибо. Я знаю о ваших пунктах. Думаю, я не ясно выразился. Спасибо еще раз.   -  person Locke    schedule 19.08.2014


Ответы (1)


Размышляя об этом, следует помнить, что iTunes на самом деле не делает резервных копий и не восстанавливает ничего в iCloud или из него. Устройство iOS делает это самостоятельно: запущен процесс-демон, и если включено резервное копирование iCloud, оно будет выполнять резервное копирование непосредственно в iCloud, без обращения к iTunes. Восстановление также выполняется без взаимодействия с iTunes.

Далее, как указал @rmaddy, ваше приложение на устройстве не может получить доступ к файлам других приложений, поэтому вы не сможете делать с устройства то, что хотите. Если вы хотите сделать это с помощью сопутствующего приложения, работающего на ПК/Mac, это может быть возможно, но будет зависеть от того, что вам точно нужно/хотите.

Re: контакты. Приложения могут получить доступ к AddressBook и, таким образом, могут синхронизировать/загружать его содержимое. Приложения также могут получать доступ к некоторым другим общим данным, например к библиотеке фотографий. Это все еще далеко от вашего первоначального запроса на «Резервное копирование/восстановление данных для всех приложений».

Re: Загрузка резервных копий iCloud. Загрузка не имеет большого значения в наши дни (Раскрытие информации: я являюсь автором криминалистического инструмента для загрузки резервных копий iCloud, о котором вы упоминали). Для этого даже существует открытый исходный код. Однако загрузка и восстановление — это два совершенно разных процесса. В частности, вы можете скачать, но у вашего приложения не будет достаточно прав для записи файлов на место.

Надеюсь, это поможет и прояснит ситуацию.

person Andrey    schedule 19.08.2014
comment
Спасибо Андрей за все разъяснения. - person Locke; 19.08.2014
comment
Андрей, мне удалось сделать резервную копию/восстановить контакты, напоминания, заметки с помощью веб-API iCloud.com. И да, благодаря вашим разъяснениям и разъяснениям Эйко, а также моему личному исследованию, я понимаю, о чем вы говорите. Вот еще вопрос. Если вы можете загрузить резервную копию iPhone в облако, может быть, я смогу загрузить в облако какие-либо новые данные резервной копии? - person Locke; 19.08.2014
comment
Да, это должно быть выполнимо (но недокументировано). Хотя я этого не делал и не исследовал. - person Andrey; 19.08.2014
comment
Еще раз спасибо, @Andrey - person Locke; 19.08.2014