1. 程式人生 > >版本更新相關,CFBundleVersion和CFBundleShortVersionString的比較,獲取版本號

版本更新相關,CFBundleVersion和CFBundleShortVersionString的比較,獲取版本號

移動客戶端進行版本迭代時,需要進行本地版本號和伺服器版本號比較,從而實現更新提示。本文祥講怎樣獲取版本號,具體的比較方法。


一、CFBundleShortVersionString和CFBundleVersion


     CFBundleShortVersionString:對應Version項

標識應用程式的釋出版本號。該版本的版本號是三個時期分隔的整陣列成的字串。第一個整數代表重大修改的版本,如實現新的功能或重大變化的修訂。第二個整數表示的修訂,實現較突出的特點。第三個整數代表維護版本。該鍵的值不同於“CFBundleVersion”標識。



    CFBundleVersion:對應Build項

    標識(釋出或未釋出)的內部版本號。這是一個單調增加的字串,包括一個或多個時期分隔的整數。

簡而言之: CFBundleShortVersionString是比較正式的版本號,只有版本釋出時才修改,而每次迭代中間需要build出很多版本,CFBundleVersion就是區分迭代中間版本的,在判斷版本是否需要更新時,一定要用CFBundleShortVersionString。
二、具體的做版本比較
版本號一般用1.1.1這樣的數字和'.'組合構成,我們如何進行比較呢?
1.我們可以將NSString中的.去掉,然後對純數字字串比較

   NSString *version = [myVersionstringByReplacingOccurrencesOfString:@"."withString:@""];


2.直接進行對比

   //當前版本號

   NSString *myVersion = [[

NSBundlemainBundle]objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

   //獲取到伺服器最新版本號,此處用1.1.0測試

   NSString *lastVersion =@"1.1.0";

    

   if ([myVersioncompare:lastVersionoptions:NSNumericSearch] ==NSOrderedDescending) {

       //當前版本低於最新版本

       NSLog(@" the version is low");

    }

   else

   {

       NSLog(@" the version is last");

   }


三:跳轉到APPStore更新


        點選立即更新跳轉到APPStore:

 NSString *urlStr =@"http://itunes.apple.com/cn/app/id1197959303"

         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];