昨天,遇到一个特别巧的事。这个问题是我在app的1.0 版没有 添加程序的自动更新功能代码,在2.0的时候才去添加的自动更新功能(这是当时项目需求的计划)。
当2.0版的时候,我添加的更新代码的逻辑是后台控制的,就是我们需要请求后台接口,根据返回的数据来判断是否要进行更新升级程序。这种场景是没有发现今天我要分享的问题。我要分享的是,在我获取应用市场程序版本号的时候,问题来了。
上干货:
1. 如何从App Store上获取指定App的信息?
这里可以通过Apple公司提供的REST接口进行查询,其接口如下:
http://itunes.apple.com/lookup?id=appid
参数appid指的是你在app在创建后的唯一标识,在iTunes Connect里可以查找到此信息。
此接口将返回一个JSON格式的字串内容,其中一个就是版本信息,如下:
"version":"1.2.0" 1.2.0 就是我们目前线上的版本
***这个是我们都知道的方法!***
2. 但是我的程序1.0版的已上线,根据这个地址,就是返回空的数据。根据返回的结果,是说我的程序还没有上线!这让我很尴尬 这让我很尴尬 这让我很尴尬。。。。。。
接下来就是替换别人项目的ID进行测试,是不是这个请求地址变了!结果令我更尴尬😅。别人的ID 请求出来是有返回数据的。
接下来,就是一顿 度娘 谷歌。。。。。查看了好多帖子,还有测试的demo代码。都没有有效的解决方法。
最后,微一个曾经的朋友,他告诉我让我在原来的地址上增加 /cn 试试。
结果,神奇的结果出来了,我的ID返回数据也获取到了。
原因是,我在发布程序的时候,根据领导的 《圣旨》只勾选了我们天朝(中国)。所以请求的地址要换成:http://itunes.apple.com/cn/lookup?id=appid
另一个重要的信息就是下载此版本App的下载页面:
"trackViewUrl":"https://itunes.apple.com/us/app/zhang-shang-bao/id...?mt=.&uo=..."
希望能帮助到和我犯一样的低级的错误。
总结:
1.在我们发布的程序是勾选的超过两个以上的国家和地区的时候,就直接用: http://itunes.apple.com/lookup?id=appid 这个就行了。
2.如果我们只勾选了中国(和我一样)那么就用:http://itunes.apple.com/cn/lookup?id=appid
3.保险的做法是,只要勾选的有中国就用:http://itunes.apple.com/cn/lookup?id=appid
网友评论