Similar issue here, as we have a mature application running already for several years. After iOS 15 was released some first reports came in that the prescriber (medical user) needed to recertify that (s)he was allowed to prescribe medicine. Once completed the settings are stored in the standardUserDefaults.
- (instancetype)init {
self = [super init];
if(!self) return nil;
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
_name = [ud stringForKey: kName];
...
isDirty = NO;
return self;
}
During the didFinishLaunchingWithOptions function there are settings loaded for reporting amongst others which call for retrieving the standardUserDefaults.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[IQKeyboardManager sharedManager] setEnable:YES];
[self xxxx:launchOptions];
return YES;
}
Following then the execution path it eventually end up at:
[xxxx sessionProperties:[Settings userData]];
which then calls the init function containing the [NSUserDefaults standardUserDefaults];
To answer eskimo's question:
And now my questions: Does your app have the Data Protection Entitlement entitlement (com.apple.developer.default-data-protection) set? If so, what to?
Yes, NSFileProtectionComplete is configured.
Now the question arises where to move the app initialization functions to... :-)