Резервное копирование iOS8 iCloud не восстанавливает данные корпоративных приложений
У нас есть корпоративное приложение для iOS, которое в настоящее время хранит все свои данные локально (основные данные плюс папка с изображениями) и значительное количество пользователей, которые часто используют iCloud для резервного копирования своих устройств. Восстановление после сбоя устройства и при обновлении устройств работает и работает на iOS7. К сожалению, мы обнаруживаем, что резервное восстановление данных приложения не происходит в текущих версиях iOS8 (сбой в 8.2, 8.1.3, 8.1.2 и, возможно, более). Приложение устанавливается и прекрасно работает на iOS 8 для новых установок. Восстановление из iTunes резервного копирования все еще работает просто отлично. Результаты для пользователей с объемом данных 1 МБ такие же, как и для данных с почти 1 ГБ данных. Результаты были такими же на прошлой неделе, до этой недели драма iCloud.
Сроки, по-видимому, совпадают с исправлением "Masque Attack". Были ли добавлены новые требования к корпоративным приложениям?
С точки зрения пользователя вы видите обычный серый значок с индикатором загрузки, а затем он исчезает примерно в то же время, что и следующий журнал консоли. Если пользователь затем устанавливает приложение снова, они начинают без данных, тогда как в предыдущих версиях iOS они имели все свои данные.
Несколько потенциально релевантных фрагментов из чудовищно длинного консольного журнала о попытке восстановления на 8.2 (идентификация изменена):
Mar 11 15:40:22 iPad backupd[60] <Warning>: WARNING: Retrying after hard error: Error getting file auth-tokens from service (MBErrorDomain/300). Underlying error: HTTP connection error (MBErrorDomain/300). Underlying error: The request timed out. (NSURLErrorDomain/-1001). Underlying error: The request timed out. (kCFErrorDomainCFNetwork/-1001)...
Mar 11 15:40:33 iPad backupd[60] <Warning>: INFO: [2] Restoring from snapshot 10 of backup xxxxxxxxxxxxxxxxxxxxxxxxxxxxx (3/6/15, 9:37:17 AM, iPad, iPad4,1, 11D201)
Mar 11 15:40:33 iPad backupd[60] <Warning>: INFO: [2] Starting to restore 0 files of size 0 B
Mar 11 15:40:34 iPad backupd[60] <Warning>: INFO: Unregistering MMCS item 488: /var/mobile/Containers/Data/Application/AF8DAA2A-AC8A-A3CA-AEBA-AF26FDA720AA/Documents/Photos/8142837B-DAFE-4AB1-A1C3-575441A52528.jpg.encrypted (574c85a9e9dca9d018fcc44a6c4c456bbb4bddd3)
.....
Mar 11 15:40:46 iPad backupd[60] <Warning>: WARNING: Chunk store progress model bytes remaining underflow (8192 bytes)
.....
Mar 11 15:40:47 iPad backupd[60] <Warning>: WARNING: [2] Error getting item from chunk store: /var/mobile/Containers/Data/Application/AF8DAA2A-AC8A-A3CA-AEBA-AF26FDA720AA/Documents/Photos/8142837B-DAFE-4AB1-A1C3-575441A52528.jpg.encrypted (574c85a9e9dca9d018fcc44a6c4c456bbb4bddd3): Error getting item from MMCS at path "/var/mobile/Containers/Data/Application/AF8DAA2A-AC8A-A3CA-AEBA-AF26FDA720AA/Documents/Photos/8142837B-DAFE-4AB1-A1C3-575441A52528.jpg.encrypted" (MBErrorDomain/401). Underlying error: chunk for item 00000000000001e8 at chunk index 0 has location r. Perhaps the item should be unregistered. (com.apple.mmcs/29).
.....
Mar 11 15:40:48 iPad backupd[60] <Warning>: WARNING: Retrying after hard error: Error getting item from MMCS at path "/var/mobile/Containers/Data/Application/AF8DAA2A-AC8A-A3CA-AEBA-AF26FDA720AA/Documents/Photos/8142837B-DAFE-4AB1-A1C3-575441A52528.jpg.encrypted" (MBErrorDomain/401). Underlying error: chunk for item 00000000000001e8 at chunk index 0 has location r. Perhaps the item should be unregistered. (com.apple.mmcs/29).
.....
Mar 11 15:41:30 iPad BTServer[68] <Critical>: LE LE_Security_DeriveLinkKeyForAddress with result BM3 STATUS 102
Mar 11 15:41:30 iPad identityservicesd[42] <Warning>: [Warning] sqlite3 error in _Bool CSDBRecordStoreSaveWithPreAndPostCallbacksAndTransactionType(CSDBRecordStoreRef, CSDBRecordStoreSaveCallback, CSDBRecordStoreSaveCallback, CSDBRecordConflictPolicy, CSDBSqliteTransactionType, CFErrorRef *): disk I/O error
Mar 11 15:41:30 iPad identityservicesd[42] <Error>: Error saving record store: CSDBRecordSQLite/10
.....
Mar 11 15:50:49 iPad backupd[60] <Warning>: WARNING: Chunk store progress model bytes remaining underflow (8192 bytes)
Mar 11 15:50:49 iPad backupd[60] <Warning>: WARNING: Chunk store progress model bytes remaining underflow (208784 bytes)
Mar 11 15:50:51 iPad backupd[60] <Warning>: INFO: [2] Restored batch of 17 files of size 24.8 MB in 30.5 s at 0.81 MB/s (99.4%)
Mar 11 15:50:51 iPad backupd[60] <Warning>: INFO: [2] Finished restoring files in 603.930 at 0.00 MB/s
Mar 11 15:50:51 iPad backupd[60] <Warning>: INFO: [2] Uninstalling placeholder: com.enterprise.app.in.question
Mar 11 15:50:51 iPad backupd[60] <Warning>: LaunchServices: Uninstalling app <LSApplicationProxy: 0x1563fdd0> com.enterprise.app.in.question (Placeholder)
Mar 11 15:50:52 iPad installd[36] <Notice>: 0x341000 -[MIClientConnection uninstallIdentifiers:withOptions:completion:]: Uninstall requested by backupd (pid 60) with options: (null)
Mar 11 15:50:52 iPad MobileStorageMounter[199] <Error>: 0x350749dc Device-O-Matic: iterate_ancestors IORegistryEntryGetParentIterator failed: No such process
Mar 11 15:50:52 iPad MobileStorageMounter[199] <Error>: 0x350749dc Device-O-Matic: iterate_ancestors IORegistryEntryGetParentIterator failed: No such file or directory
Mar 11 15:50:52 iPad MobileStorageMounter[199] <Error>: 0x350749dc Device-O-Matic: iterate_ancestors IORegistryEntryGetParentIterator failed: No such file or directory
Mar 11 15:50:52 iPad MobileStorageMounter[199] <Error>: 0x350749dc Device-O-Matic: iterate_ancestors IORegistryEntryGetParentIterator failed: No such file or directory
Mar 11 15:50:52 iPad SpringBoard[43] <Warning>: Killing com.enterprise.app.in.question for termination assertion
Mar 11 15:50:52 iPad installd[36] <Notice>: 0x341000 -[MIUninstaller _uninstallBundleWithIdentifier:error:]: Uninstalling identifier com.enterprise.app.in.question
Mar 11 15:50:53 iPad installd[36] <Notice>: 0x341000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier com.enterprise.app.in.question at /private/va
r/mobile/Containers/Bundle/Application/AC76CA20-A0A9-49F0-A3E5-A854ACC834DA
Mar 11 15:50:53 iPad installd[36] <Notice>: 0x341000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier com.enterprise.app.in.question at /private/va
r/mobile/Containers/Data/Application/AF8DAA2A-AC8A-A3CA-AEBA-AF26FDA720AA
Mar 11 15:50:53 iPad syncdefaultsd[200] <Notice>: (Note ) marked "com.me.keyvalueservice" topic as "opportunistic" on <APSConnection: 0x166601e0>
Mar 11 15:50:53 iPad backupd[60] <Warning>: LaunchServies: No app bundle to remove for com.enterprise.app.in.question
Mar 11 15:50:53 iPad lsd[153] <Warning>: LaunchServices: Updating identifier store
Mar 11 15:50:53 iPad backupd[60] <Warning>: INFO: [2] Registering safe harbor for com.enterprise.app.in.question at /var/mobile/Library/SafeHarbor/1
Mar 11 15:50:54 iPad installd[36] <Notice>: 0x1f59000 -[MIClientConnection registerSafeHarborAtPath:forIdentifier:ofType:withOptions:completion:]: Register safe harbor requested by client backupd (pid 60) for path /var/mobile/Library/SafeHarbor/1, identifier com.enterprise.app.in.question of type 2, with options (null)
Mar 11 15:50:54 iPad locationd[64] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0Mar 11 15:50:54 iPad installd[36] <Notice>: 0x1f59000 -[MIContainer makeContainerLiveReplacingContainer:withError:]: Made safe harbor container active for com.enterprise.app.in.question at /priv
ate/var/mobile/Containers/Data/Application/50638B9B-39E4-4CA8-815E-59B17685FF24
Mar 11 15:50:54 iPad backupd[60] <Warning>: INFO: [2] Processed failed app restore in 2.832 sMar 11 15:50:55 iPad backupd[60] <Warning>: INFO: Restore finished in 1642.926 s
Mar 11 15:50:55 iPad installd[36] <Notice>: 0x1f59000 -[MIClientConnection listSafeHarborsOfType:withOptions:completion:]: List safe harbor requested by client backupd (pid 60) for type 2 with options (null)
Mar 11 15:50:55 iPad atc[28] <Warning>: LaunchServices: Not creating progress for <LSApplicationProxy: 0x17dec580> com.enterprise.app.in.question since it is not a placeholder.
Mar 11 15:50:56 iPad backupd[60] <Warning>: INFO: [2] Restoring cancelled app: com.enterprise.app.in.question
Mar 11 15:50:56 iPad backupd[60] <Warning>: INFO: [2] Uninstalling placeholder: com.enterprise.app.in.question
Mar 11 15:50:56 iPad backupd[60] <Warning>: LaunchServices: Uninstalling app <LSApplicationProxy: 0x15578670> com.enterprise.app.in.question
Mar 11 15:50:56 iPad installd[36] <Notice>: 0x1f59000 -[MIClientConnection uninstallIdentifiers:withOptions:completion:]: Uninstall requested by backupd (pid 60) with options: (null)
Mar 11 15:50:56 iPad SpringBoard[43] <Warning>: Killing com.enterprise.app.in.question for termination assertion
Mar 11 15:50:56 iPad installd[36] <Error>: 0x1f59000 +[MIContainer allContainersForIdentifier:options:error:]: 686: No bundle container found for identifier com.enterprise.app.in.question
Mar 11 15:50:56 iPad backupd[60] <Warning>: LaunchServices: MobileInstallationUninstallForLaunchServices did not uninstall any apps, ignoring
Mar 11 15:50:57 iPad backupd[60] <Warning>: INFO: [2] Removing any partially restored app data
1 ответ
Я (и наш клиент) связывался с Apple по этому поводу, часть Apple заставила нас записать это как ошибку, а другой ответил, что восстановление iCloud не было сервисом корпоративного уровня и именно так оно и должно работать в настоящее время., Надеюсь, 2-й ошибся.