Jer*_*emy 11 xcode app-store ios ios6
在Apple Developer论坛上未能找到对此问题的准确回复.
与其他Apple开发者一样,我将升级我们的应用以支持iOS6设备.我已经下载了支持iOS6 SDK的XCode 4.5.
我知道我无法使用此XCode版本将我的应用程序版本提交到应用商店,但是:
如果我重新编译和使用的6.0部署目标建立一个应用程序,并解决所有已知的问题,例如不赞成的方法等,当苹果发布的GM iOS6的,将任何构建编译和iOS5的设备的工作呢?
我应该只提交部署目标为5.0的应用程序,还是那些无法在iOS6中运行的应用程序?
(困惑).
ser*_*gio 14
由于这是关于支持多个iOS版本的一个非常通用的问题,并没有涵盖任何iOS6特定的东西(由NDA覆盖),这里是我的答案:
如果我使用6.0的部署目标重新编译和构建应用程序并修复所有已知问题,例如当Apple为iOS6发布GM时弃用方法等,那么任何构建编译和使用iOS5设备吗?
原则上,是的,如果您没有使用任何仅支持iOS6的功能,或者您已正确使用它(请参阅第三个问题的答案).但是,如果您想确保一切正常,那么对运行iOS5/4(或模拟器)的实际设备进行测试几乎是必须的.
目前在iOS版本下运行的东西也有可能在iOS6上中断(这可能发生在添加了一些错误的情况下,但是如果修复了一些错误,并且发生了代码有错误的情况)它本身抵消了前者的影响).所以,测试是国王.(感谢rsswtmr对此的评论).
我应该只提交部署目标为5.0的应用程序,还是那些无法在iOS6中运行的应用程序?
如果您的应用程序不使用任何仅支持iOS6的功能(或者您正确执行,稍后阅读),则可以指定5.0的部署目标; 换句话说,此设置不会破坏与iOS6的兼容性;
如果我使用新的iOS6功能,我的部署目标应该只是iOS6吗?
它可以,但它不是唯一的方法.
如果您将部署目标指定为iOS6,那么您可以在应用程序中自由使用任何仅限iOS6的功能而无需担心.应用程序商店机制会阻止您的应用程序安装在任何旧设备上,您将是安全的.
另一方面,如果您将部署目标指定为iOS5或更早版本,那么您仍然可以在应用程序中使用任何仅限iOS6的功能,但是您应该通过"防护"任何仅使用iOS6的功能来正确支持旧版本的iOS并为iOS5提供后备.
这意味着以下内容:假设您将featureA仅在iOS6上使用; 你能做的是:
检查该功能是否在运行时可用(例如class respondsToSelector等);
保护你的代码,#ifdef以便只在可能的情况下编译;
如果1处的检查失败,请为较旧的iOS版本定义一条出路.
看看有关支持多个iOS版本的这篇文章.
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |