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”程序地址。然後與本地程序的版本比較即可。




上面的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);

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

 

原文轉自:http://blog.csdn.net/davidsph/article/details/8931718

 

發佈了221 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章