我有一个在 iOS 9 上运行的应用程序,我使用 Xcode 8 beta 4 为 iOS 10 创建了一个新版本,现在当我在这种情况下将应用程序从以前的版本 (iOS 9) 升级到新版本 (iOS 10) 时......
在 iPhone(使用 ios 9 或 10)上安装带有 Xcode 7 的先前版本,然后终止应用程序并在同一设备上安装带有 Xcode 8 beta 4 的新版本,它将升级视为新安装,因此所有 NSUserDefaults 保存的值返回零!
我测试了一个示例应用程序并遵循了在这种情况下没有问题的场景,NSUserDefaults
因为我曾经[NSUserDefaults standardUserDefaults]
保存和检索值,但在以下实现中使用共享容器保存数据存在问题,我相信“entitlementGroup”导致问题!
SDK 10 可能无法识别之前由 SDK 9 创建的共享容器!对此有什么想法吗?问题是我无法通过替换[NSUserDefaults standardUserDefaults]
而不是使用 entitlementGroup 来修复代码,因为用户当前使用的是应用程序的先前版本并且对新版本的任何更改都不能解决问题,因为它需要在两个版本中修复。
这是代码的主要部分(由以前的开发人员编写):
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
// background launch
} else {
//foreground launch
[self setupForForegroundLaunch:application option:launchOptions];
[[TrackingManager sharedTrackingManager] setIsBackground:NO];
}
}
@end