我正在深入研究 iOS 开发,正在构建一个支持 iOS 版本 3.2 至 4.2 的简单应用程序。我已经在 4.2 模拟器上的最新版本 Xcode 中对其进行了相当好的测试,但我还想模拟它在 iOS 3.2 设备上运行。在阅读了一些相关教程后,我设法下载并安装了旧版本的 xcode 以及旧的 3.2 SDK,但是当我在旧版本的 Xcode 中构建我的项目时,由于围绕所有 iOS 4.2,我收到了大量错误旧版本 Xcode 不支持的功能。我对所有 4.2 框架进行了弱链接,但仍然出现错误。如何让我的 4.2 应用程序在这个旧版本的 Xcode 中成功构建并使其在 3.2 iPhone 模拟器中运行?
非常感谢您的智慧!
最佳答案
您需要在引用仅存在于 4.2 上的功能的任何行周围添加 #ifdef __IPHONE_4_2
...#endif
。这样,3.2 编译器将构建您的应用程序,就好像这些行不存在一样。
您需要非常小心地构建这些语句,确保它们准确地反射(reflect)在 3.2 上运行针对 4.2 构建的版本时将被禁用的代码位,否则没有太多意义。
这将构建您的应用程序,但不包含任何 4.2 功能,因此它实际上并没有测试您的弱链接等是否正确,它只是测试后备 3.2 代码的工作方式。
它可能会抛出一些关于您不知道 3.2 中不存在的功能/方法的警告。确保添加了适当的后备代码。
(顺便说一句,众所周知,Apple 会拒绝 Base SDK 为 3.2 的 iPhone 应用程序。如果您返回 4.0 之前的版本,则至少需要支持 3.1.3)
关于iphone - iOS 开发 : How can I run my iPhone 4. 2 iPhone 3.2 模拟器上的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561745/