我们的 ios6.1-sdk 编译的应用程序在 ios 6.1 iPhone 4、4s 和 5 设备上运行良好。当在 ios7 iphone 5s 上运行该应用程序时,用户界面仍然看起来像 ios 6(黑色按钮等),但我们对大部分内容都很好,除了我们发现了一个错误。我猜这是因为 ios7 上的 API 实现发生了变化。
当我们的应用程序在 xcode 5 上针对 ios7-sdk 进行编译时,一切都会崩溃。 UI 对象未对齐,标签无法读取等。因此,我们希望针对 ios6.1 sdk 编译代码,但在 ios 7 上运行它。
在 Xcode 5 上我安装了 ios 6.1 sdk通过从 Xcode 4.6.3 dmg 复制它,如本文所述 https://stackoverflow.com/questions/12523888/how-can-i-add-older-version-of-ios-sdk-in-xcode-4-5并在构建设置上将 Base SDK 更新为 ios 6.1,但是在 ios 7 模拟器上运行应用程序时,用户界面不会回退到 ios 6.1。然而,如果应用程序针对运行 iOS 7 的物理 iPhone 进行测试,它会回退到 iOS 6.1。
如何让 ios 7 模拟器在运行 ios6-sdk 编译的应用程序时回退用户界面,以便我们可以在模拟器上重现该错误?
如果我正确理解你的问题...
我的应用程序也遇到了同样的问题,需要保留 iOS6.1 界面,内置于 Xcode 5 并在 iOS7 中运行。我们的界面也很混乱、错位,工具栏缺少按钮。我们稍后会在 7 中修复它,但现在没有时间,但需要它在 iOS7 上运行并仍然在 Xcode 5 中构建。
这就是我所做的:
(我想发布一些屏幕截图,但手边没有我的 mac,如果需要的话稍后会得到)
- 我将 Xcode 4.6.3 与 Xcode 5 一起安装。
- 我将 6.1 SDK 中的符号链接添加到 Xcode 5 安装中。 (我发现了一个关于此的问题,会找到一个链接)或者你可以像你一样安装它。
(接下来的 2 个选项可能不需要,但我们最终在测试中使用了它们,并且它有效,即使是新的 5S 64 位手机)
Then...
同样在“构建设置”中,将“Base SDK”设置为“iOS 6.1”。 (我相信这是让它发挥作用的关键)
应用程序目标的常规选项卡,将部署目标设置为 6.1(我们的目前仍为 5.1)
在我们的故事板中,选择文件检查器,在界面构建器部分中,我选择在 Xcode 4.6 中打开,以及针对 iOS 5.1 及更高版本的构建,并以 iOS 6.1 及更早版本的方式查看。 (我的自动布局未选中,我们不使用它)
关于“打开于”的最后一个选项的警告。如果您选择“在 Xcode 4.6 中打开”,您将失去 iOS7 的 Storyboard 编辑功能。就我而言,我现在不在乎,因为无论如何我希望它保持在 4.6 视图中。要时刻铭记在心。我想你可以把它改回来,但还没有测试过。
链接/安装 6.1 SDK 后,当您在应用程序中运行时,您应该能够选择在模拟器中使用所需的 iOS 版本。您将在顶部工具栏的“活动架构”下拉列表中看到它。就我而言,我可以选择 iPhone Retina(4 英寸)及以下版本,我可以选择 iOS7 或 6.1。对我来说有趣的部分是,通过上述设置,我可以在模拟器中运行我的应用程序,即使我选择 iOS7 作为模拟器活动模式,它看起来也像 iOS6。它甚至可以在 64 位模拟器中运行,在我的设置中,该模拟器仅显示 iOS7 选择。
至少这样我可以在 Xcode 5 中构建和工作,为 iOS7 用户临时分发应用程序,但保持 iOS6 样式、位置和按钮完整。现在我可以花更多的时间过渡到 iOS7 风格,但仍然可以修复错误并更新应用程序,就像 iOS6.1 一样。
我希望这是有道理的,我希望它能回答你的问题。我希望我记得我所做的一切!如果我想到什么我会添加更多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)