是否有方法可以在应用程序更新时进行测试?
我很尴尬,因为只有在应用程序更新时才会出现错误,并且不会进行调查。
答案 0 :(得分:7)
如果您询问是否要查找应用程序通过应用商店更新的时间,我不知道这样的方法。
执行此操作的hackie方法是将当前应用版本保存到NSUserDefaults,然后检查NSUserDefaults应用版本是否等于当前应用版本。
例如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
if ([defaults objectForKey:@"savedAppVersionKey"] != nil) {
//key exists
NSString *savedAppVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedAppVersionKey"];
if ([currentAppVersion isEqualToString:savedAppVersion]) {
//still running the same app version
}
else {
//the app version changed from the last launch
}
}
else {
//first run, set the key & synchronize
[[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:@"savedAppVersionKey"];
[[NSUserDefaults standardUserDefaults] synchronize]
}
}
我没有测试过代码,但它应该可以运行。
谢谢,
-David
答案 1 :(得分:3)
您可以将应用程序拖到iTunes,而不是从Xcode运行您的应用程序。在此之后,当您同步时,iTunes将安装该应用程序(您需要安装配置文件,但如果您可以通过Xcode运行,那么您已经拥有它)。然后,您可以将较新版本的应用程序拖到iTunes并通过执行同步来更新它(确保您更改了应用程序版本,或者iTunes不会更新应用程序)。
我不知道它是否与更新中出现的过程相同,但我相信这是我们可以做的最好的测试。
答案 2 :(得分:1)
这可能会有所帮助,因为它是苹果推荐的方式来测试应用中的更新 http://developer.apple.com/library/ios/#technotes/tn2285/_index.html#//apple_ref/doc/uid/DTS40011323
答案 3 :(得分:0)
最好的方法是使用旧版应用程序的开发配置文件创建一个ipa文件。有人提到您可以将此文件与iTunes同步。实际上这不是最简单的方法;使用X-Code管理器将ipa文件拖到“设备”>下的设备中。 [您的设备名称]> “应用程序”。这将立即安装旧版本的应用程序。
此时,此时启动应用程序并重新创建您尝试重新创建的任何情况可能很重要。 (注意:X-Code管理器允许您使用“设备”选项卡上“管理器”底部的“下载”和“上载”选项卡将文件传入/传出沙盒,因此可能没有必要执行所有状态手动创建逻辑。)
一旦安装了旧应用程序并且您正在尝试重新创建状态,您可以在旧应用程序之上启动新应用程序,或者从Test-Flight / X-Code Organizer部署新的ipa。
特别是从调试器启动时,似乎捆绑/沙箱位置不会/可能不会更改;从Test-Flight更新时它确实如此。目前我不清楚该位置是否可以改变iTunes上的实际应用程序更新,但这绝对是您在测试中需要考虑的内容。