I am calling a parent app on my iPhone from an Apple Watch app using openParentApplication
and handleWatchKitExtensionRequest
. In the main app, I use CoreData with the following options for addPersistentStoreWithType:
NSDictionary *options = @{
NSMigratePersistentStoresAutomaticallyOption : @YES, //
NSInferMappingModelAutomaticallyOption : @YES, //
NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"}, //
NSPersistentStoreFileProtectionKey : NSFileProtectionCompleteUnlessOpen
};
This caused an exception:
This NSPersistentStoreCoordinator has no persistent stores (device locked). It cannot perform a save operation.
Does this mean that I can neither use NSFileProtectionCompleteUnlessOpen
nor NSFileProtectionComplete
?
Do I have to use NSFileProtectionNone
or NSFileProtectionCompleteUntilFirstUserAuthentication
?
I would like to know a way to protect my data by using NSFileProtectionCompleteUnlessOpen
and still be able to access the data when my Watch app uses openParentApplication
.
Possible ways to deal with the problem (but not a real solution)
- Have two files (e.g., SQL data bases), where one is encrypted and the other one is not. The latter one would store only the data required by the Watch app.