iOS開發中檢測版本,有新版本則更新

來源:互聯網
上載者:User

標籤:des   blog   http   io   ar   os   sp   for   檔案   

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 = 應用程式識別碼;  
            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"];
            
            NSLog(@"appStore 版本號碼為:%@ 本地版本號碼為:%@",newVersion,localVersion);

以下便是比較,這兩個版本號碼是否一致來決定是否更新,簡單,故略之。有需要的可以留言聯絡。

iOS開發中檢測版本,有新版本則更新

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.