如果我以编程方式将我的应用程序设置为仅限于某个版本的 iOS(例如,审查应用程序时的确切版本的 iOS),它会被 AppStore 审查者拒绝吗?
场景是我需要控制更新版本的 iOS 可能与应用程序不兼容的风险,考虑到基于网络的方法并不总是可用或可靠,并且我必须注意并强制用户将应用程序升级到经过测试与最新版本的 iOS 兼容的最新版本。
编辑:
似乎运行时检测和通知策略更好。感谢您的所有回答。
如果我以编程方式将我的应用程序设置为仅限于某个版本的 iOS(例如,审查应用程序时的确切版本的 iOS),它会被 AppStore 审查者拒绝吗?
场景是我需要控制更新版本的 iOS 可能与应用程序不兼容的风险,考虑到基于网络的方法并不总是可用或可靠,并且我必须注意并强制用户将应用程序升级到经过测试与最新版本的 iOS 兼容的最新版本。
编辑:
似乎运行时检测和通知策略更好。感谢您的所有回答。
这是处理这个问题的错误方法。如果您编写得当,新版本的 iOS不应该破坏您的应用程序。我不确定您想到的是什么“基于网络的方法”。
您应该做的是确保您的应用程序适用于新 iOS 版本的预发布版本。如果没有,请修复它并发布更新。如果您的应用已针对它进行了设置,您可以通知用户新版本,否则他们无论如何都会通过应用商店看到它。
用你的方法,即使你得到了苹果的认可,你也保证iOS升级会破坏你的应用程序。这是您想为用户提供的体验吗?
您无法阻止应用程序在操作系统版本之上运行,但这应该不是问题。只要您使用公共 API 和类,就不会遇到任何(许多)问题 - Apple 强制执行此操作是有原因的!
你能解释一下你的意思吗
考虑到基于网络的方法并不总是可用或可靠的
否 - developer.com 中有一个部分解释了如何将您的应用设置为特定版本:
当您以编程方式说 - 您可能不想这样做,因为如果用户(付费和)下载您的应用程序,然后发现它不起作用,他们会感到恼火。请改用设置,以便在下载尝试时识别它。
考虑到基于网络的方法并不总是可用或可靠的
不确定您的意思是什么,Apple 不会删除针对特定 iOS 版本编译的应用程序所依赖的内容。如果您采用网络方法,它们不会从您的脚下消失。它们可能会在未来的 iOS 版本中被弃用,但不会消失。
也就是说,如果您提供应用程序在启动时进行的 Web 服务调用,您可以向其提供应用程序找到的 iOS 版本,并返回一条消息以提示用户升级。我认为苹果不会介意这一点。您也可以将其关闭,直到应用程序上线。