一直以为Appstore有了检查版本是否更新的机制,我们在APP上做这个更新功能会被拒,但是也有看到一些APP也是做了这个更新功能的。因为在网上没有找到完全正确的方法能获取到iTunes里的数据的,于是就写此文给需要的开发小伙伴们。
下面我就综合了网上说的两种方法去检查更新:
第一种:获取自己服务器的APP版本号与已安装的APP版本号比较
这是需要服务器去做操作,因为我这边客户端已经做好了,后台又十分忙,我就没去找服务器怎么弄了,我想应该也是和APP差不多去请求itunes的数据,只不过我们APP通过接口去调用,获取到我们需要的版本号。
第二种:根据已发布到Appstore上的应用版本号与已安装的APP版本号比较更新
1.获取当前APP版本号
当然,获取当前APP的名称或者是编译版本都是可以的,直接将上图红色字体替换,获取名称:CFBundleDisplayName,获取编译版本:CFBundleVersion;
2.获取iTunes上APP的版本
刚开始我是用网上找的那串URL去调用,用 POST 方式发送请求:http://itunes.apple.com/lookup?id=你的应用程序的ID,这个id就像bundleid一样是唯一的,但是这样我发现走的是失败的回调。后面找到一个分享的说是因为是国内的APP,获取不到数据,要在上面那串URL的.com后面加上/cn,于是我也照做了,发现还是走失败的回调,于是我又仔细检查了一遍我的应用程序的ID,ID就是你iTunes里APP信息里的,如下图:
查完还是一模一样的,于是想着现在很多网页都是加密的,也许应该是用https,于是把http请求换成https,然后就打印出来很多的数据,全是iTunes里你提交的信息,当然包括你APP现在线上的最新版本号。代码如下:
上图代码里的iTunesVersion就是获取到了线上APP的版本号。大家可以在用的时候使用断点打印出来所有的数据看哪些是自己能用的上的。