如何提交含ARKit UIRequiredDeviceCapabilities限制的应用更新?
解决ARKit应用更新时的设备限制政策问题
嘿,我来帮你搞定这个头疼的问题!先给你理清楚为啥苹果会拒你的更新:
你之前的v1.0版本没在Info.plist里加UIRequiredDeviceCapabilities的ARKit密钥,这意味着所有符合你应用最低系统版本的iOS设备都能安装它。现在更新要加这个密钥,相当于把原本能装的不支持ARKit的设备直接排除了——苹果的政策明确禁止更新版本缩小原版本的支持设备范围,所以才会弹出那个错误提示。
最优解决方案:运行时检测代替强制设备限制
根本不用纠结那两个方案,这里有个更合规也更友好的做法:
- 保持
Info.plist里不添加ARKit相关的UIRequiredDeviceCapabilities密钥,这样更新后的版本依然能被所有原支持的设备安装 - 在应用运行时检测设备是否支持ARKit:用
ARConfiguration.isSupported(iOS平台)来判断 - 如果设备不支持ARKit,就给用户清晰的提示(比如“你的设备暂不支持AR功能,请使用iPhone 6s及以上机型体验”),同时隐藏或禁用应用里的ARKit功能模块
这样既符合苹果的更新政策,又能让支持ARKit的用户正常使用功能,不支持的用户也能安装应用并使用其他非AR功能,完美平衡了合规性和用户体验。
关于你提到的两个方案的补充
- 提交全新应用并下架旧应用:这是下下策,会丢失原应用的所有用户数据、评论、下载量和历史排名,代价非常大,除非万不得已不建议这么做
- 通过IsSupported标记限制功能:其实这就是上面说的最优方案的核心,这不是无奈之选,而是苹果官方推荐的ARKit适配方式
内容的提问来源于stack exchange,提问作者andyno
相关产品推荐
相关产品推荐

