如何在从应用商店更新后检测首次应用程序启动,iPhone

4
我需要在应用程序从appstore更新后执行某些操作。我使用NSUserDefaults实现,但对我来说不太好,因为它仅在第一次更新后才起作用。
帮帮我吧。
谢谢。
3个回答

10

MTMigration 项目(MIT 许可证)恰好能够满足您的需求:

在 iOS 应用版本更新时仅需要运行一次的代码块管理。这可以是任何内容,例如数据归一化例程、“本版本新功能”屏幕或错误修复。

以下是其使用示例:

[MTMigration migrateToVersion:@"0.9" block:^{
    // Some 0.9 stuff
}];

[MTMigration migrateToVersion:@"1.0" block:^{
    // Some 1.0 stuff
}];

1
if ([[NSString stringWithFormat:@"Version %@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]]isEqualToString:@"Version 1.0"])
{
// run your code here
}

-2
您可以按照以下方式将当前版本与旧版本进行比较:
[NSString stringWithFormat:@"Version %@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]];

通过使用一个 if 语句 来处理当前版本,你可以轻松应对 1.1、2.0 等等不同的版本。


6
我不明白这如何运作——CFBundleShortVersionString难道不会返回应用程序的当前版本吗?我们难道不需要知道上一次打开应用程序时的版本号吗? - rob
@Mutawe 我该如何比较这些版本? - KennyVB
if([NSString stringWithFormat:@"版本 %@",[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]] isEqualToString:@"1.1"]) // 做一些事情 - Mutawe
我支持@rob的问题。我不明白这个回答如何解决问题。 - Michael
这不是答案,因为它检测版本并运行相应的代码,而他要求仅在第一次启动时执行代码,而不是每次启动都执行。被踩了。 - Jesse Onolemen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接