方法一:
可以通過請求http://itunes.apple.com/cn/lookup?id=%@這個鏈接得到app在App Store上的信息(cn是因為只在中國,如果沒有限制可去掉)
responseObject里包含兩個參數resultCount = 1;results = ();results獲得的是數組
- (void)checkVersion{
NSString *url = @"http://itunes.apple.com/cn/lookup?id=%@";
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/javascript", nil];
[manager POST:url parameters:nil progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSString *newVersion = responseObject[@"results"][0][@"version"];//獲取版本號
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
}
方法二:
第三方庫iVersion,設置delegate
可通過pod 'iVersion'配置
更新提示(設置代理也可以)
[iVersion sharedInstance].applicationBundleID = [[NSBundle mainBundle] bundleIdentifier];
常用屬性
[iVersion sharedInstance].appStoreCountry = @"cn";//指定國家
[[iVersion sharedInstance] setDelegate:self];//設置代理
[iVersion sharedInstance].updateAvailableTitle = @"版本更新";//設置標題
[iVersion sharedInstance].updatePriority=iVersionUpdatePriorityDefault;//提示框的樣式(也可理解成按鈕的顯示,只有一個就是強更)
常用代理方法
- (BOOL)iVersionShouldCheckForNewVersion;//是否檢測新版本
- (void)iVersionVersionCheckDidFailWithError:(NSError *)error;//檢測失敗
- (void)iVersionDidDetectNewVersion:(NSString *)version details:(NSString *)versionDetails;//檢測到有更新版本
- (BOOL)iVersionShouldDisplayNewVersion:(NSString *)version details:(NSString *)versionDetails;//是否顯示默認更新界面,yes顯示,no不顯示
- (void)iVersionUserDidAttemptToDownloadUpdate:(NSString *)version;//點擊下載
- (void)iVersionUserDidRequestReminderForUpdate:(NSString *)version;//點擊下一次提醒
- (void)iVersionUserDidIgnoreUpdate:(NSString *)version;//點擊忽視更新
- (BOOL)iVersionShouldOpenAppStore;//打開App Store