最近闲来无事写了个iOS检测更新的DemoGitHub Demo地址
还是讲讲实现原理吧.
先说如果应用未上架去哪里拿APPID.
进入开发者后台.创建一个包.后就能看到.(这里拿我写的一个手电筒应用举个例子)
如果是已经上架的应用,考虑到Developer的网络(挂代理也慢).ASO搜索应用名.然后看看应用的ID了解一下.
http://itunes.apple.com/cn/lookup?id=你的APPID
{
"resultCount": 1,
"results": [{
"artistViewUrl": "https://itunes.apple.com/cn/developer/tencent-technology-shenzhen-company-limited/id292374531?uo=4",
"artworkUrl60": "http://is4.mzstatic.com/image/thumb/Purple128/v4/63/cc/fd/63ccfd12-2618-d72a-669b-2f8152fa9b9d/source/60x60bb.jpg",
"artworkUrl100": "http://is4.mzstatic.com/image/thumb/Purple128/v4/63/cc/fd/63ccfd12-2618-d72a-669b-2f8152fa9b9d/source/100x100bb.jpg",
"screenshotUrls": ["http://is5.mzstatic.com/image/thumb/Purple118/v4/5c/1c/c1/5c1cc1d2-05a7-b7ef-ad57-f6cbc2be1d35/source/392x696bb.jpg", "http://is2.mzstatic.com/image/thumb/Purple128/v4/8e/26/80/8e268021-163b-2d62-4f20-43f3837176f6/source/392x696bb.jpg", "http://is5.mzstatic.com/image/thumb/Purple118/v4/42/99/df/4299dfdb-1261-6165-d06d-a1fad0563653/source/392x696bb.jpg", "http://is5.mzstatic.com/image/thumb/Purple128/v4/9a/4f/02/9a4f02df-d3e6-029f-60de-3ca999a8bf0b/source/392x696bb.jpg"],
"ipadScreenshotUrls": [],
"appletvScreenshotUrls": [],
"artworkUrl512": "http://is4.mzstatic.com/image/thumb/Purple128/v4/63/cc/fd/63ccfd12-2618-d72a-669b-2f8152fa9b9d/source/512x512bb.jpg",
"supportedDevices": ["iPad2Wifi-iPad2Wifi", "iPad23G-iPad23G", "iPhone4S-iPhone4S", "iPadThirdGen-iPadThirdGen", "iPadThirdGen4G-iPadThirdGen4G", "iPhone5-iPhone5", "iPodTouchFifthGen-iPodTouchFifthGen", "iPadFourthGen-iPadFourthGen", "iPadFourthGen4G-iPadFourthGen4G", "iPadMini-iPadMini", "iPadMini4G-iPadMini4G", "iPhone5c-iPhone5c", "iPhone5s-iPhone5s", "iPadAir-iPadAir", "iPadAirCellular-iPadAirCellular", "iPadMiniRetina-iPadMiniRetina", "iPadMiniRetinaCellular-iPadMiniRetinaCellular", "iPhone6-iPhone6", "iPhone6Plus-iPhone6Plus", "iPadAir2-iPadAir2", "iPadAir2Cellular-iPadAir2Cellular", "iPadMini3-iPadMini3", "iPadMini3Cellular-iPadMini3Cellular", "iPodTouchSixthGen-iPodTouchSixthGen", "iPhone6s-iPhone6s", "iPhone6sPlus-iPhone6sPlus", "iPadMini4-iPadMini4", "iPadMini4Cellular-iPadMini4Cellular", "iPadPro-iPadPro", "iPadProCellular-iPadProCellular", "iPadPro97-iPadPro97", "iPadPro97Cellular-iPadPro97Cellular", "iPhoneSE-iPhoneSE", "iPhone7-iPhone7", "iPhone7Plus-iPhone7Plus", "iPad611-iPad611", "iPad612-iPad612", "iPad71-iPad71", "iPad72-iPad72", "iPad73-iPad73", "iPad74-iPad74", "iPhone8-iPhone8", "iPhone8Plus-iPhone8Plus", "iPhoneX-iPhoneX"],
"advisories": ["偶尔/轻微的色情内容或裸露", "偶尔/轻微的成人/性暗示题材"],
"isGameCenterEnabled": false,
"kind": "software",
"features": [],
"trackCensoredName": "QQ",
"trackViewUrl": "https://itunes.apple.com/cn/app/qq/id444934666?mt=8&uo=4",
"contentAdvisoryRating": "12+",
"averageUserRatingForCurrentVersion": 4.0,
"languageCodesISO2A": ["ZH"],
"fileSizeBytes": "261605376",
"userRatingCountForCurrentVersion": 18602,
"trackContentRating": "12+",
"trackId": 444934666,
"minimumOsVersion": "8.0",
"currency": "CNY",
"wrapperType": "software",
"version": "7.5.0",
"artistId": 292374531,
"artistName": "Tencent Technology (Shenzhen) Company Limited",
"genres": ["社交", "娱乐"],
"price": 0.00,
"description": "-----QQ•乐在沟通-----\n\n\n√服务超过90%的移动互联网用户\n√多人视频、文件多端互传,不断创新满足沟通所需\n√致力于打造欢乐无限的沟通、娱乐与生活体验\n\n\n-----主要功能-----\n\n\n•聊天消息:随时随地收发好友和群消息,一触即达。\n•语音通话:两人、多人语音通话,高清畅聊。\n•视频聊天:亲朋好友,想念不如相见。\n•文件传输:手机、电脑多端互传,方便快捷。\n•空间动态:更快获知好友动态,分享生活留住感动。\n•厘 米 秀:换装扮、炫动作、偷胶囊,年轻人最爱的潮爆玩法。\n•个性装扮:主题、名片、彩铃、气泡、挂件自由选。\n•游戏中心:天天、全民等最热手游,根本停不下来。\n•移动支付:话费充值、网购、转账收款,一应俱全。\n•QQ运动:同步苹果-健康(HealthKit)运动数据,与好友PK,快乐健康一起玩!\n•QQ看点:专为年轻人打造的个性化内容推荐平台。\n\n\n乐在沟通18年,聊天欢乐9亿人!\n\n\n-----联系我们-----\n\n\n如在使用过程中遇到任何问题,请联系我们:\n- 在线帮助:进入QQ设置 -> 关于QQ -> 帮助与反馈\n- 客服热线:0755 -83763333(服务时间:8:00 - 23:00)\n\n\n-----QQ会员/超级会员/黄钻连续包月服务说明-----\n1、QQ会员连续包月服务有以下四种订购类型: \n12元/1个月;\n30元/3个月;\n60元/6个月;\n118元/12个月。\n\n\n超级会员连续包月服务有以下四种订购类型:\n25元/1个月;\n60元/3个月;\n118元/6个月;\n238元/12个月。\n\n\n黄钻连续包月服务有以下一种订购类型:\n10元/1个月。\n\n\n2、订购QQ会员/超级会员/黄钻服务会通过iTunes账户直接支付。\n3、在订购服务到期前24小时,系统将按订购类型进行自动续订和扣除相应费用。\n4、如需关闭连续包月服务,请至少提前24小时在“账户设置”中进行操作。\n5、隐私政策及使用条款:\nQQ会员/超级会员:https://m.vip.qq.com/clubact/2017/iap/privacy-policy.html\n黄钻:https://qzs.qzone.qq.com/qzone/qzact/act/2017/iap-autorenew-rule/index.html\n\n\n*加入寻找丢失儿童公益项目,GPS在后台运行可能会影响电池续航时间",
"bundleId": "com.tencent.mqq",
"trackName": "QQ",
"formattedPrice": "免费",
"primaryGenreName": "Social Networking",
"genreIds": ["6005", "6016"],
"currentVersionReleaseDate": "2018-02-09T03:12:59Z",
"releaseNotes": "【本次更新】\n红包互动乐趣多,趣味聊天新创意!\n1. 短视频讨红包体验优化,增强红包收发场景下的系统稳定性;\n2. 视频通话表情红包,欢乐刷脸抢红包,可将精彩表情分享给好友。",
"isVppDeviceBasedLicensingEnabled": true,
"releaseDate": "2011-06-23T03:33:55Z",
"primaryGenreId": 6005,
"sellerName": "Tencent Technology (Shenzhen) Company Limited",
"averageUserRating": 3.0,
"userRatingCount": 614476
}]
}
上面这段是经过在线json解析序列化之后的json内容.我们可以看到有一个version
字段.我们需要做的就是判断这个version
字段和我们App是否相同.不同就是有新版本了.
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
- (BOOL)isEqualToString:(NSString *)aString;
比较是否相同.