版本迭代更新
#defineKEY @"CFBundleShortVersionString"- (void)judgeCurrentAppStoreVersion
{//1.通過session請求NSString *str =@"http://itunes.apple.com/lookup?id=414478124";
NSURL*urlStr =[NSURL URLWithString:str];
NSURLRequest*request =[NSURLRequest requestWithURL:urlStr];//2.初始化sessionNSURLSession *session =[NSURLSession sharedSession];
NSURLSessionTask*sessionTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError *_Nullable error) {
NSDictionary*appInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
NSArray*infoContent = [appInfo objectForKey:@"result"];//2.1商店版本號NSString *storeVersion = [[infoContent objectAtIndex:0] objectForKey:KEY];
NSLog(@"商店的版本號是%@", storeVersion);//2.2當前客戶端的版本號NSString *currentVersion =[NSBundle mainBundle].infoDictionary[KEY];
NSLog(@"當前版本是%@", currentVersion);//2.3比較當前版本號和商店版本號if(![currentVersion isEqualToString:storeVersion]) {//新版本//2.4彈窗提示更新UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"有最新版本了,請及時更新"message:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction*OKAction = [UIAlertAction actionWithTitle:@"確定"style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:APP_STRING]];
}];
UIAlertAction*cancelAction = [UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:OKAction];
[alertController addAction:cancelAction];
dispatch_async(dispatch_get_main_queue(),{
[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
});//2.5儲存新版本號NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
[defaults setObject:KEY forKey:currentVersion];
[defaults synchronize];
}elseif([currentVersion isEqualToString:storeVersion]){//舊版本}
}];//3.開啟任務[sessionTask resume];
}
ttp://itunes.apple.com/lookup?id=414478124 id為APP在AppStore中的一個序號。可以開啟appstore 點選一個app 複製連結即可看到。id 是在你提交資訊後,先不要提交稽核,
就可以看到id。(PS:我是這樣做的,有更好的可以指正)然後拿到這個id後可以去程式碼裡面寫了。
解釋:
1.CFBundleShortVersionString表示應用程式的釋出版本號,
該版本號一般由三個整數構成,第一個整數表示有重大的修改版本,例如增加新的功能或重大變化。第二個版本表示修訂版本,實現較為突出的特點。第三個版本表示維護的版本。
該值不同於 "CFBundleVersion" 標識
2.CFBundleVersion 標識應用的內部版本號
這個版本是內部自己團隊使用的一個版本號,一般不對外公開。
這兩個的區別:
1. CFBundleShortVersionString對應Xcode裡專案的Version
2. CFBundleVersion對應Xcode裡專案的Build
每釋出一個新應用或新版本,蘋果都要求你輸入一個版本號,這個版本號對應的是CFBundleShortVersionString,不要寫錯哦。並且,如果你上傳成功後(未稽核,或未通過),然後又修復了bug,或改了功能,那麼在打包釋出時,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通過稽核後,又發新版本,那個下次上傳時,Version要大於1.5.1,但Build可以從新開始,比如1.1.0 。如果Version1.5.1又有問題,我又要上傳修改後的應用時,Build必須大於上一個上傳成功的Build,即要大於1.1.0。
相關文章
- BSN季度版本2023年3月31日迭代更新
- BSN季度版本2022年1月25日迭代更新預告
- BSN季度版本2022年4月30日迭代更新預告
- BSN季度版本2023年3月31日迭代更新預告
- C語言版本迭代C語言
- 大專案更新迭代思想
- 專案更新迭代解決方案
- swoole 版本更新
- iOS 版本更新iOS
- 技術分享| anyRTC 8月更新迭代
- 為啥遊戲的版本迭代,都是作死?遊戲
- openssh版本更新與說明 openssl版本更新與說明
- 文旅賦能城市文化產業迭代更新產業
- Mac 更新 PHP 版本MacPHP
- yum更新php版本PHP
- iOS開發之App更新迭代上架流程iOSAPP
- 進行版本迭代過程中,使用spring jpa來完美解決資料表更新的問題Spring
- Android各版本迭代改動與適配集合Android
- 產品經理如何去做版本迭代規劃的
- Mac 系統更新 PHP 版本MacPHP
- CloudQuery v1.3.4 版本更新Cloud
- 自定義版本更新彈窗
- layui更新版本UI
- iOS APP檢查版本更新iOSAPP
- 商務樓宇小程式迭代更新覆盤總結
- Node 快速切換版本、版本回退(降級)、版本更新(升級)
- SoloPi v0.10.2 版本更新
- collection庫更新1.4.0版本
- SoloPi v0.11.1 版本更新
- Maven更新子模組的版本號Maven
- PHP再次更新Bug修復版本PHP
- Maven依賴版本更新踩坑Maven
- Linux下更新curl版本教程!Linux
- Httprunner3.x 版本更新了好多HTTP
- [提問交流]OneThink 版本更新了
- React UI 庫: React Suite 3.8.0 版本更新ReactUI
- YC-Framework版本更新:V1.0.5Framework
- YC-Framework版本更新:V1.0.3Framework