使用以前的版本检测应用程序的首次启动

时间:2014-06-17 22:53:19

标签: ios nsuserdefaults

我想更新应用以在首次发布时添加导览。我通常会用某种NSUserDefaults键来处理这个问题。但是,已经发布了预先存在的应用程序现有版本。

如何在首次启动应用时触发某些行为,但仅限于全新安装,而不是在更新后首次启动?

4 个答案:

答案 0 :(得分:0)

您可以通过网络服务查看应用版本。并警告用户更新应用程序。这种情况下,需要互联网连接。

答案 1 :(得分:0)

最简单的方法是使用NSUserDefaults保存当前版本:

if (![[NSUserDefaults standardUserDefaults] objectForKey:@"app_version"] || [[[NSUserDefaults standardUserDefaults] objectForKey:@"app_version"] integerValue] < [[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"] integerValue]) {
    // new version detected!
    [[NSUserDefaults standardUserDefaults] setObject:[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"] forKey:@"app_vervion"];
}

编辑已添加对包含此功能的首次更新的用户默认值的检查。

EDIT II 我现在明白了你真正想要的东西。你需要几乎相同的代码:

if (![[NSUserDefaults standardDefaults] boolForKey:@"tour_done"]) {
    // present tour and that call:
    // [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"tour_done"];
    // [[NSUserDefaults standardUserDefaults] synchronize];
}

答案 2 :(得分:0)

启动时,检查是否存在具有当前运行版本唯一名称的文件/持久性设置。如果不存在,请显示游览,然后触摸文件/创建持久设置。

答案 3 :(得分:0)

到目前为止,我可以确定的最佳方法是首先发布没有巡视的版本,但 记录NSUserDefaults的某种标志。然后我希望大多数现有用户在我启动第二次更新(包括巡视)之前更新并使用该应用程序。

我可以将此与@ rmaddy的建议相结合,以查找可能已经编写的任何其他以前存在的设置,以增加我的覆盖范围。

这显然远非理想。