iOS 强制更新
廢話不多說,直接上代碼
+ (void)getNewVersion {NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=1036152564"]];NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {// 請(qǐng)求的數(shù)據(jù)轉(zhuǎn)字典,必須判斷數(shù)據(jù)有值才走里面,不然空的data會(huì)出現(xiàn)crashif (data.length > 0) {NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];NSString *newVersion = [result[@"results"] firstObject][@"version"];NSString *message = [result[@"results"] firstObject][@"releaseNotes"];NSString *trackViewUrl = [result[@"results"] firstObject][@"trackViewUrl"];//屏蔽蘋果審核員看到此更新提示口(此版本每次提交前更新成目前線上版本號(hào))if ([newVersion isEqualToString:@"2.5.0"]) return;// 獲得當(dāng)前打開軟件的版本號(hào)NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];// 針對(duì)新下載用戶如果是第一次下載 不會(huì)走里面代碼。如果是老用戶就會(huì)走里面代碼if (![newVersion isEqualToString:currentVersion]) {UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"有新版本啦" message:message preferredStyle:UIAlertControllerStyleAlert];[alertVC addAction:[UIAlertAction actionWithTitle:@"馬上嘗鮮"style:UIAlertActionStyleDefaulthandler:^(UIAlertAction * _Nonnull action) {[[UIApplication sharedApplication]openURL:[NSURL URLWithString:trackViewUrl]];}]];UIViewController *mainVc = [UIApplication sharedApplication].keyWindow.rootViewController;if (mainVc.presentedViewController) {mainVc = mainVc.presentedViewController;}[mainVc presentViewController:alertVC animated:YES completion:nil];}}}];[task resume]; }這是我把強(qiáng)制更新做成一個(gè)繼承NSObject工具類里面的代碼,我的類是這樣寫的:
下面是調(diào)用方法(當(dāng)然你一定要包含頭文件)
我和蘋果審核員對(duì)賭的游戲其實(shí)就一句話:
//屏蔽蘋果審核員看到此更新提示口(此版本號(hào)必須每次提交前更新成目前線上已上線版本號(hào))if ([newVersion isEqualToString:@"2.5.0"]) return;在上線之前一定要將此處的版本號(hào)改成你現(xiàn)在已經(jīng)上線的版本號(hào),我對(duì)賭的理由是,蘋果審核員在審核我們的App的時(shí)候,他的手機(jī)或者pad上絕對(duì)沒有安裝我們之前的App,如果安裝了的話,那他就會(huì)跟我們用戶一樣,會(huì)彈出更新提示框,這樣我們的應(yīng)用鐵定是通過不了的,如果沒安裝,那他請(qǐng)求下來的version一定是跟我這里寫死的是一樣的,所以就會(huì)return掉,不會(huì)走后面的代碼,事實(shí)證明,我贏了!但是這也不是絕對(duì)的,如果真有一天審核員心情好,一直留著你的App,那你就中獎(jiǎng)了!
源碼地址
轉(zhuǎn)自:http://www.jianshu.com/p/b1196f50de82
總結(jié)
- 上一篇: 显卡显存测试u盘 mats_耕升RTX
- 下一篇: FVD speed dial-firef