2011-07-21 146 views
5

儘管它想要測試應用程序更新時是否有方法?iOS應用程序更新測試

我很尷尬,因爲有一個錯誤只發生在應用程序更新時發生,並且它不調查。

回答

7

如果您問是否要通過應用程序商店更新應用程序時,我不知道這種方法。

這樣做的黑客方法是將當前應用程序版本保存到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

+0

這個測試的更新,目前我在做什麼。但我將應用程序版本存儲在數據庫中。 – conor

+1

上面的代碼從不存儲'currentAppVersion',第一次運行除外。一個簡單的解決方案是刪除其他的,並且每次只需設置版本和同步。 – joshpaul

3

而不是從運行Xcode中的應用程序,你可以將應用程序拖動到你的iTunes。在此之後,當您同步時,應用程序將由iTunes安裝(您需要安裝配置文件,但是如果您可以通過Xcode運行,那麼您已經擁有了它)。然後,您可以將較新版本的應用程序拖到iTunes上,並通過執行同步來更新它(請確保您更改了應用程序版本,否則iTunes不會更新該應用程序)。

我不知道它是否會與更新中發生的過程完全相同,但我相信這是測試它的最好方法。

0

最好的方法是創建一個帶有舊版本應用程序的開發配置文件的ipa文件。有人提到你可以將這個文件與iTunes同步。其實這不是最簡單的方法;請使用X代碼管理器將「ipa」文件拖到「設備」> [您的設備名稱]>「應用程序」下的設備中。這會立即安裝應用程序的舊版本。

此時,在此時啓動您的應用程序並重新創建您嘗試重新創建的任何情況可能很重要。 (注意:X代碼管理器允許您使用設備選項卡上管理器底部的「下載」和「上傳」選項卡將文件傳入/傳出沙箱,因此可能不需要執行所有狀態手動創建邏輯)

一旦安裝了舊應用程序並處於您嘗試重新創建的狀態,則可以在舊應用程序之上啓動新應用程序,或從Test-Flight/X-部署新的ipa,代碼管理器。

特別是從調試器啓動時,看起來好像bundle/sandbox位置不會/不會改變;當從Test-Flight更新它時。目前我不清楚這個位置是否可以從iTunes上更新實際的應用程序更新,但這絕對是您想要在測試中考慮的事情。