1

We have an enterprise iOS app that currently stores all of its data locally (core data plus a folder full of images) and a substantial number of users who have been using iCloud to backup their devices frequently. Restoring after device failure and when upgrading devices has and is still working just fine on iOS7. Unfortunately we're finding that backup restoration of app data is not happening on current versions of iOS8 (failing on 8.2, 8.1.3, 8.1.2 and possibly more). The app installs and runs just fine on iOS 8 for new installs. Restore from iTunes backup still works just fine. The results are the same for users with 1MB of data as ones with nearly 1GB of data. The results were the same last week before this weeks iCloud drama.

The timing seems to potentially line up with the "Masque Attack" fix, were there new requirements on enterprise apps added?

From the user stand point, you see the normal grayed out icon with the loading indicator and then it disappears about the same time as the following console log. If the user then installs the app again they start with no data, where in previous versions of iOS they would have all of their data.

A few potentially relevant snippets from the monstrously long console log of an attempt to restore on 8.2 (identifying info altered):

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
joshOfAllTrades
  • 1,982
  • 14
  • 10

1 Answers1

0

I (and our client) have been in contact with Apple about this, part of Apple had us log this as a bug and another responded saying that iCloud restore wasn't an enterprise level service and that this is how it is supposed to work currently. Hopefully the 2nd was mistaken.

joshOfAllTrades
  • 1,982
  • 14
  • 10