在查看了一堆关于检测这是否是全新安装的 SO 帖子后,我假设我想做的事情是不可能的,但我要问以防万一有一个我不确定的技巧。
我正在构建一个要集成到应用程序中的 SDK,我希望能够判断 SDK 何时首次初始化,是来自全新的安装,还是来自包含我们 SDK 的应用程序更新。
我可以让集成商调用类似 [MySDK initializeIsNewInstall:YES/NO]
的东西并迫使他们弄清楚它是哪个(使用 NSDefaults 或其他什么),但我宁愿以某种方式自动弄清楚。
如果有人有任何想法,那就太好了。
我想通过使用[NSUserDefaults standardUserDefaults]
来建议一个很好的技巧
这样做,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if([[NSUserDefaults standardUserDefaults] boolForKey:@"isApplicationUpdated"]){
// application was updated//
// make another userDefaults to store version number and confirm if it is updated here.
}
else{
[[NSUserDefaults standardUserDefaults] setBookForKey:@"isApplicationUpdated"]
// as for the first time application would not find this key and you can use it after you have updated the app do stuff here
}
Afaik 检测您的应用程序是否已更新或在您的案例中全新安装的唯一方法是检查您的持久性,以查找以前版本中应该存在的内容。对于将来的检查,您可以将自己的标志添加到持久性中。