一、系统支持自动更新
首先iOS系统中是支持APP的自动更新的,可以开关选择
二、APP内部提示更新
若用户没有选择打开自动更新,择APP中提示更新。可以在用户进入APP首页后进行提示,具体逻辑如下
- 请求Apple Store上的版本信息
- 与本地version版本号进行对比
- 进行跳转到Apple store下载页面
1、请求Apple store上的版本信息
- (void)getAppleStoreVersionInfo:(void(^)(NSString *version, NSString *releaseNotes))successBlock {
NSInteger appid = @"Apple store上的Appid";
NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/cn/lookup?id=%li",appid];
[WhzxRequest requestGetWithURL:urlString success:^(NSDictionary * _Nullable resultDictionary, NSURLResponse * _Nullable response) {
NSString *newVersion = [resultDictionary[@"results"]firstObject][@"version"];
NSString *releaseNotes = [resultDictionary[@"results"]firstObject][@"releaseNotes"];
if (successBlock) {
successBlock(newVersion, releaseNotes);
}
} failure:^(NSError * _Nullable error) {
}];
}
得到了线上的版本号、版本更新等信息,具体的信息如下表
//resultCount = 1;
//results = (
// {
// advisories = (
// );
// appletvScreenshotUrls = (
// );
// artistId = 1480665421;
// artistName = "Jiangxi Yizhi Zhixing Automotive Operations Ltd.";
// artistViewUrl = "https://apps.apple.com/cn/developer/jiangxi-yizhi-zhixing-automotive-operations-ltd/id1480665421?uo=4";
// artworkUrl100 = "https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/41/05/d0/4105d026-a20a-6125-77f6-4587f190161b/source/100x100bb.jpg";
// artworkUrl512 = "https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/41/05/d0/4105d026-a20a-6125-77f6-4587f190161b/source/512x512bb.jpg";
// artworkUrl60 = "https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/41/05/d0/4105d026-a20a-6125-77f6-4587f190161b/source/60x60bb.jpg";
// averageUserRating = "2.6875";
// averageUserRatingForCurrentVersion = "2.6875";
// bundleId = "com.YTTimeRent.027hb";
// contentAdvisoryRating = "4+";
// currency = CNY;
// currentVersionReleaseDate = "2020-01-07T22:20:33Z";
// description = "\U4f17\U9a7e\U79df\U8f66\U4e13\U6ce8\U4e8e\U65b0\U80fd\U6e90\U6c7d\U8f66\U7684\U5206\U65f6\U79df\U8d41\Uff0c\U81f4\U529b\U4e8e\U901a\U8fc7\U7535\U52a8\U6c7d\U8f66\U5171\U4eab\U6765\U89e3\U51b3\U57ce\U5e02\U51fa\U884c\U96be\U9898\Uff0c\U4ee5\U79fb\U52a8\U4e92\U8054\U7f51\U4e3a\U57fa\U7840\Uff0c\U7ed3\U5408\U5404\U9879\U804c\U80fd\U6280\U672f\Uff0c\U6765\U5b9e\U73b0\U7528\U6237\U5feb\U901f\U627e\U8f66\Uff0cAPP\U5f00\U95e8\U5173\U95e8\Uff0c\U8fd8\U8f66\U7684\U5168\U7a0b\U81ea\U52a8\U5316\U3002\U6309\U7167\U65f6\U95f4\U7684\U8ba1\U8d39\U65b9\U5f0f\Uff0c\U4e3a\U7528\U6237\U63d0\U4f9b\U7eff\U8272\U3001\U7ecf\U6d4e\U3001\U4fbf\U6377\U7684\U51fa\U884c\U89e3\U51b3\U65b9\U6848\U3002";
// features = (
// );
// fileSizeBytes = 75225088;
// formattedPrice = "\U514d\U8d39";
// genreIds = (
// 6003
// );
// genres = (
// "\U65c5\U6e38"
// );
// ipadScreenshotUrls = (
// );
// isGameCenterEnabled = 0;
// isVppDeviceBasedLicensingEnabled = 1;
// kind = software;
// languageCodesISO2A = (
// ZH
// );
// minimumOsVersion = "8.0";
// price = 0;
// primaryGenreId = 6003;
// primaryGenreName = Travel;
// releaseDate = "2017-02-03T17:20:52Z";
// releaseNotes = "\U4fee\U590d\U5df2\U77e5bug";
// screenshotUrls = (
// "https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/01/11/70/01117005-0aee-0f79-610d-c6514f18de4a/pr_source.png/392x696bb.png",
// "https://is3-ssl.mzstatic.com/image/thumb/Purple113/v4/c4/a5/23/c4a52311-5229-8a62-527a-84ccd1671e6a/pr_source.png/392x696bb.png",
// "https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/3f/01/2e/3f012e4e-9209-80ff-85f8-b0d9b7f30be0/pr_source.png/392x696bb.png",
// "https://is1-ssl.mzstatic.com/image/thumb/Purple113/v4/bb/ec/07/bbec07ce-a013-5b18-1d9d-f323143f6f4c/pr_source.png/392x696bb.png"
// );
// sellerName = "Jiangxi Yizhi Zhixing Automotive Operations Ltd.";
// sellerUrl = "http://www.027hb.cn/";
// supportedDevices = (
// "iPadAir3-iPadAir3",
// "iPadProSecondGen-iPadProSecondGen",
// "iPhone6sPlus-iPhone6sPlus",
// "iPad856-iPad856",
// "iPhone6Plus-iPhone6Plus",
// "iPadMini5-iPadMini5",
// "iPadMini4Cellular-iPadMini4Cellular",
// "iPhone5c-iPhone5c",
// "iPadMini3Cellular-iPadMini3Cellular",
// "iPadThirdGen-iPadThirdGen",
// "iPadMini-iPadMini",
// "iPhone6-iPhone6",
// "iPad878-iPad878",
// "iPhoneXSMax-iPhoneXSMax",
// "iPadProCellular-iPadProCellular",
// "iPhoneXS-iPhoneXS",
// "iPadProFourthGenCellular-iPadProFourthGenCellular",
// "iPhone7-iPhone7",
// "iPhone7Plus-iPhone7Plus",
// "iPadThirdGen4G-iPadThirdGen4G",
// "iPad71-iPad71",
// "iPadAirCellular-iPadAirCellular",
// "iPad612-iPad612",
// "iPhone6s-iPhone6s",
// "iPhone5s-iPhone5s",
// "iPadMini5Cellular-iPadMini5Cellular",
// "iPadAir2-iPadAir2",
// "iPadFourthGen4G-iPadFourthGen4G",
// "iPad74-iPad74",
// "iPhoneX-iPhoneX",
// "iPhone4S-iPhone4S",
// "iPadPro97Cellular-iPadPro97Cellular",
// "iPadAir2Cellular-iPadAir2Cellular",
// "iPadSeventhGenCellular-iPadSeventhGenCellular",
// "iPadMini3-iPadMini3",
// "iPhone11-iPhone11",
// "iPadMiniRetina-iPadMiniRetina",
// "iPad23G-iPad23G",
// "iPhoneXR-iPhoneXR",
// "iPad834-iPad834",
// "iPad611-iPad611",
// "iPad75-iPad75",
// "iPad2Wifi-iPad2Wifi",
// "iPadPro97-iPadPro97",
// "iPadProSecondGenCellular-iPadProSecondGenCellular",
// "iPhone8Plus-iPhone8Plus",
// "iPadSeventhGen-iPadSeventhGen",
// "iPodTouchFifthGen-iPodTouchFifthGen",
// "iPhone8-iPhone8",
// "iPad812-iPad812",
// "iPhone5-iPhone5",
// "iPadFourthGen-iPadFourthGen",
// "iPhone11ProMax-iPhone11ProMax",
// "iPodTouchSixthGen-iPodTouchSixthGen",
// "iPadMini4-iPadMini4",
// "iPadAir-iPadAir",
// "iPodTouchSeventhGen-iPodTouchSeventhGen",
// "iPad73-iPad73",
// "iPadProFourthGen-iPadProFourthGen",
// "iPhone11Pro-iPhone11Pro",
// "iPhoneSESecondGen-iPhoneSESecondGen",
// "iPad76-iPad76",
// "iPadMini4G-iPadMini4G",
// "iPadAir3Cellular-iPadAir3Cellular",
// "iPhoneSE-iPhoneSE",
// "iPadMiniRetinaCellular-iPadMiniRetinaCellular",
// "iPadPro-iPadPro",
// "iPad72-iPad72"
// );
// trackCensoredName = "\U4f17\U9a7e\U79df\U8f66";
// trackContentRating = "4+";
// trackId = 1197227551;
// trackName = "\U4f17\U9a7e\U79df\U8f66";
// trackViewUrl = "https://apps.apple.com/cn/app/%E4%BC%97%E9%A9%BE%E7%A7%9F%E8%BD%A6/id1197227551?uo=4";
// userRatingCount = 16;
// userRatingCountForCurrentVersion = 16;
// version = "2.4.1";
// wrapperType = software;
// }
2、与本地版本号进行对比
获取本地版本号
+ (NSString *)getVersionNumber {
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
return version;
}
判断版本对比
//判断当前版本和Apple store版本
if ([appCurrentVersion compare:appStoreVersion options:NSNumericSearch] == NSOrderedAscending) {
[self showVersionUpdateViewWithInfoDic:releaseNotes];
}
3、进行跳转到Apple store下载页面
NSURL *url = [NSURL URLWithString:AppleStoreURL];
//前往苹果商店更新
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
参考文章:
https://blog.csdn.net/coderMy/article/details/52887050
https://www.jianshu.com/p/f762788f5761
网友评论