遇到的问题
跳转到App store的某个App页面需要此App的 Apple ID(可以在iTunes Connect查看),而未上传构建版本的App是没有Apple ID的。所以如果想通过请求苹果API来获取线上版本号来与用户App版本号来对比是无法实现的。
解决方法
要实现这个功能需要后台配合,也就是说让后台控制更新:进入App时请求接口,根据后台返回的内容决定是否弹窗提示更新。
后台返回的字段主要有:
is_prompt_update (int): 是否提示更新:0-不提示,1-提示,
url (string): 下载地址,
is_force_update (string): 是否强制要求更新:0-不强制,1-强制
- is_prompt_update决定前端是否弹窗提示更新
- url是跳转的地址
- is_force_update表示是否是强制更新,若强制更新则弹窗只有一个确定按钮,点击后跳转到App Store
检测更新的代码写到哪?
假如写到didFinishLaunchingWithOptions
里面,后台要求的是强制更新,用户点击确定按钮后跳转到AppStore,这个时候用户又返回到APP,所谓的强制更新就失效了。所以我是把检测更新代码写到applicationDidBecomeActive
方法里的。
后续工作
上传构建版本后,这个时候你就可以去iTunes Connect查看它的Apple ID了,然后把App store的URL告诉后台小伙伴,让他们配置,等第二版的App上架后,后台如果设置弹出更新,第一版的用户就能根据后台配置的URL跳转到指定的AppStore页面进行更新了。
补充说明:
后来发现我真的是多此一举了,在iTunes connect里新建APP后就有Apple id了,即使你还没有上传构建版本😂。
网友评论