0

出于 QA 目的,我在应用程序的设置视图中将应用程序的构建版本显示为 PSTitleValueSpecifier。我将我们应用程序的当前版本号设置为 DefaultValue,并为每个新版本更新它。

我的问题是,每当我通过 Xcode 在开发手机上部署我们的应用程序的新版本时,版本值不会更新,但会保留以前的版本。更新版本值的唯一方法是从开发手机中删除应用程序,然后部署新版本。显然,这种方法并不能让我们的 QA 部门满意,因为他们会丢失所有持久化的数据。

我已经尝试过,清理项目,重新编译和部署,但我得到了相同的行为。

有没有其他人遇到过这个问题?关于如何解决/修复它的任何想法?

4

1 回答 1

2

这是因为这个值是使用 NSUserDefaults 存储的,它存储在磁盘上,只有在删除应用程序时才会删除。您可以像设置任何其他用户默认设置一样在代码中显式设置它。您可以在 Info.plist 中创建一个字段,当您想要发送新版本时更改该字段。在启动时从 plist 中读取该值,然后将其写入您的用户默认值:

NSString *value = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"build_version"];
[[NSUserDefaults standardDefaults] setObject:value forKey@"build_version"];
[[NSUserDefaults standardDefaults] synchronize];

当然,您可以用设置文件中的任何键名替换“build_version”。这是一个 hack,但它可能会让你的 QA 人员满意。

出于争论的原因,期望您必须在看到版本号更新之前完全删除以前的版本实际上是合理的,但是我意识到并非所有 QA 人员都是合理的。;-)

于 2009-09-30T22:41:19.567 回答