iOS 利用 AppStore 版本号检测当前版本和升级
开发中我们可能会遇到这样的需求,当 AppStore 中有新版本迭代更新,在用户点开 APP 的时候弹框提醒客户去 AppStore 更新 APP。这里面就有个关键点,判断当前 APP 与 AppStore 中的版本高低,若一样,则无需进行提示;反之则弹框提示(用户使用版本不会比 AppStore 版本高)。下面就了解如何获取 APP 在 AppStore 中的版本号。
From Xcode Help Document版本号
CFBundleShortVersionString(Version) 指定包的发布版本号,标识应用程序的发布迭代版本。APP Store 所识别到的版本号。发布版本号是三个时期分离整数组成的字符串。例如 1.0.1。第一个整数表示应用程序的主版本号,表示实现新功能或重大变化。第二个整数代表次版本号,表示实现不太突出的功能。第三个整数代表修正版本号,表示维护已发行版本。
CFBundleVersion(Build) 指定包的构建版本号,是Xcode里的一个构造版本。
如果项目上线的时候,先打一个IPA的包上传 Version为1.0.1 build为1.0.1,这时候Version1.0.1 的包出现问题,需要重新打包上传,可以依旧使用version1.0.1,但是这时候的build必须要换,如果依然用这个来进行打包,上传的时候他会说 在你的商店里已经有了一个build为1.0.1的包,所以可以把build改为1.0.2。
升级
关于iOS版本升级,苹果是不允许用户有强制用户升级的提示的,但是为了让用户知道APP更新了,一般APP里面是会有版本升级提示。下面来介绍一下一般都是怎么做的。
Tips:
1、用 "https://itunes.apple.com/lookup?id=" 获取版本号,会出现延迟或请求回来的版本号不稳定还有就是与刚刚发布的版本号对不上。 这个是连接国外的服务器,所以会有延迟。 解决:使用 "https://itunes.apple.com/cn/lookup?id=" 路径。
2、如果上架的时候只选中国,而且又用"https://itunes.apple.com/lookup?id=" 获取版本号,那么 resultCount 就为 0,获取不到版本数据。解决方法同上。
3、曾经测试反馈在 APP 刚启动时候都是白屏的情况。发现是版本号请求引起线程阻塞,所以要注意多线程问题。
4、应用程序还没有发布,如何获取它的 id 啊。不急,App Store Connect 创建要发布应用的时候会生成这个 id 的。
5、请求中需要的 id,登录开发者账号到 App Store Connect 上查看 App ID。
More Thinking ,如何进行强制更新和非强制更新?
Was this help article useful? Send feedback.