Extensions: Need a way to migrate data into a shared container without requiring the user to explicitly launching the containing app before using the extension

Number:rdar://18119318 Date Originated:8/25/2014
Status:Open Resolved:
Product:iOS SDK Product Version:iOS 8
Classification:Usability Reproducible:Yes
In order for a user to use our new extension, we must first migrate our keychain/user defaults/Core Data/etc. into a shared container. 

We can only perform this migration from the app, meaning if a user installs the update containing the extension and launches the extension *before* launching the app, we won't have access to the necessary data from inside the extension. We'll need to display some copy to the user indicating that they need to open the app and allow the migration to happen before they can use the extension.

Clearly this is not ideal. I'd like to request something along the lines of a special background mode that an app will be launched into immediately after an extension is detected, allowing the app to perform the migration.

Steps to Reproduce:
Install an app update that contains that app's first extension

Expected Results:
The extension can be launched before the containing application is, and is able to work as expected.

Actual Results:
Launching the extension before the containing application will result in a state where the extension does not have access to necessary data, which has not yet been migrated into a shared container.


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!