應用每開發(fā)一個新版本時贩据,都可能會有新特性介紹頁面栋操。所以在應用里就要判斷是不是新版本,并且能判斷只有第一次進入應用時饱亮,才是新版本矾芙。
//* 在delegate里判斷*/
//1、 取出沙盒中存儲的上次使用軟件的版本號
NSString *key = @"CFBundleShortVersionString";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *lastVersion = [defaults stringForKey:key];
// 2近上、獲得當前軟件的版本號
NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
// 3剔宪、判斷版本號
if ([currentVersion isEqualToString:lastVersion])
{// 舊版本
}else{ // 新版本
// 存儲新版本
[defaults setObject:currentVersion forKey:key];
}
解釋
1、CFBundleShortVersionString 標識應用程序的發(fā)布版本號
- 該標志表示就是應用的版本號壹无,一般是由三個整數(shù)分隔組成的字符串葱绒。第一個整數(shù)代表重大修改的版本,如實現(xiàn)新的功能或重大變化的修訂斗锭。第二個整數(shù)表示的修訂地淀,實現(xiàn)較突出的特點。第三個整數(shù)代表維護版本岖是。** 該鍵的值不同于“CFBundleVersion”標識**
2帮毁、CFBundleVersion 標識應用的內(nèi)部版本號
- 這個版本是內(nèi)部自己團隊使用的一個版本號,一般不對外公開豺撑。
3烈疚、區(qū)別
-
CFBundleShortVersionString
對應Xcode里項目的Version
-
CFBundleVersion
對應Xcode里項目的Build
Version:1.3.1、Build:1.6
4聪轿、AppStore 發(fā)布
每發(fā)布一個新應用或新版本爷肝,蘋果都要求你輸入一個版本號,這個版本號對應的是 CFBundleShortVersionString
陆错,不要寫錯哦灯抛。并且,如果你上傳成功后(未審核音瓷,或未通過)牧愁,然后又修復了bug,或改了功能外莲,那么在打包發(fā)布時,CFBundleVersion
必須比上一版本更大。
- 打個比方偷线,我第一次上傳的Version:1.5.1磨确、Build:3.4.2 ,那我這個應用被拒絕,修復好后声邦,我又打包上傳時乏奥,Version還是1.5.1,但Build必須大于3.4.2亥曹,可以是3.4.3 邓了、3.4.5、3.8.5等媳瞪。 如果Version 1.5.1通過審核后骗炉,又發(fā)新版本,那個下次上傳時蛇受,Version要大于1.5.1句葵,但Build可以從新開始,比如1.1.0 兢仰。如果Version1.5.1又有問題乍丈,我又要上傳修改后的應用時,Build必須大于上一個上傳成功的Build把将,即要大于1.1.0轻专。
5、如果還有什么不明白察蹲,可能給我留言哦
~nice
- 如果有什么疑問请垛,可以在評論區(qū)一起討論;
- 如果有什么不正確的地方递览,歡迎指導叼屠!
注:本文首發(fā)于 iHTCboy's blog,如若轉(zhuǎn)載绞铃,請注明來源镜雨。