iOS APP檢查版本更新

iOS程序自動提示更新的實現方案大致分為兩種:
第一種,自己服務器提供一個接口,告知相關app的當前版本,是否需要更新,以及更新的地址等信息 。
第二種,就是利用蘋果的appstore 提供的相關api進行查詢更新。

由于此前沒有找到iOS程序更新的方法,就用了第一種方式,但后來發現了一些問題,自己提供服務器,需要維護,程序提交更新后,由于蘋果需要審核,中間會有時間差,這個時間不好把握。后臺就找蘋果的相關文檔,終于找到了。
http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

實現機制:

#define APP_URL @"http://itunes.apple.com/lookup?id=你程序的appId"
 
  ASIFormDataRequest *formRequst = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:APP_URL]];

請求網絡數據,返回的大致數據如下,其他還有好多數據,我們把關鍵的給截取出來

{  
    resultCount = 1;  
    results =     (  
                {  
            artistId = 開發者 ID;  
            artistName = 開發者名稱; 
            price = 0; 
            isGameCenterEnabled = 0;  
            kind = software;  
            languageCodesISO2A =             (  
                EN  
            ); 
            trackCensoredName = 審查名稱;  
            trackContentRating = 評級;  
            trackId = 應用程序 ID;  
            trackName = 應用程序名稱";  
            trackViewUrl = 應用程序介紹網址;  
            userRatingCount = 用戶評級;  
            userRatingCountForCurrentVersion = 1;  
            version = 版本號;  
            wrapperType = software; 
      }  
    );  
}  

取得這些數據后關鍵的信息就是“ version”最新版本號和“ trackViewUrl”程序地址。然后與本地程序的版本比較即可。

1.png

上面的build 對應info.plist文件里的“Bundle version”字段,供程序調試用,即內部調試版本號,不是顯示在appstore上面的

version 對應info.plist文件里的“Bundle versions string, short”字段,這才是真正的版本號,顯示在appstore上的。由于之前學習的時候,上網查資料,有好多人老是把這兩個給弄混了,我也糾結了一會,特此說明一下,以備記憶。

//獲取appstore最新的版本號
NSString *newVersion = [rightDic objectForKey:@"version"];
    
//獲取應用程序的地址        
 NSString *newURL = [rightDic objectForKey:@"trackViewUrl"];
         
//取得本地程序的版本號    
NSDictionary *localDic =[[NSBundle mainBundle] infoDictionary];
             NSString *localVersion =[localDic objectForKey:@"CFBundleShortVersionString"];
            
            CCLog(@"appStore 版本號為:%@ 本地版本號為:%@",newVersion,localVersion);

以下便是比較,這兩個版本號是否一致來決定是否更新。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在開發中,我們可能會遇到這樣的需求,當AppStore中有新版本需要更新迭代,用戶在點開APP的時候彈出提示框提醒...
    carpond閱讀 1,164評論 0 2
  • 什么是品牌? 美國市場營銷學會對品牌的定義是:品牌是一種名稱、術語、標記、符號或設計,或是它們的組合運用,其目...
    布小姐閱讀 2,267評論 0 20
  • 以下內容僅為我個人觀點,如有冒犯…… I don't even care. 開玩笑,先聲明我不是任何相關表演者的黑...
    李熬花閱讀 782評論 0 0