我最近刚刚下载了带有 iOS 5 SDK 包的 Xcode 4.2,我立即注意到我无法使用带有 iOS 4.2.1 的 iPhone 3G 进行调试。我只能在安装了 iOS 5 的 iphone 4 上调试和测试。
对于我运行任何低于 5.0 的 iOS 的任何设备,Xcode 只会说“为 iPhone3GS 运行完成”并且不运行它。我将部署目标设置为 3.0,因为我没有在我的应用程序中使用 3.0 以上的任何功能,并且我希望能够针对所有 3.0 或更高版本。我已经安装了所有的配置文件并且是最新的。
我已经退出并重新启动了 xcode,我已经多次清理了构建。我曾尝试在架构构建设置中添加 armv6,但没有任何东西可以让我在带有 ios 4.2.1 的旧手机上构建和运行我的应用程序。
我的问题是,是否仍然可以使带有新 SDK 的应用程序适用于低于 5 的 iOS 版本?如果我无法在旧手机上安装我的应用程序,我如何确保它们仍能在较低的 iOS 版本上运行?
编辑: 好吧,iOS SDK 5 似乎默认放弃了对 armv6 的支持。您需要做的是在您的目标和项目的构建设置下的架构字段中添加 armv6。然后您的应用程序将能够在 iPhone 3G 设备上运行。可以在此处找到答案How to build for armv6 and armv7 architectures with iOS 5
iOS
版本不同。另外,请将编辑添加为答案,以便您可以接受找到的解决方案,并且可以将此问题标记为已回答。
我在尝试让新创建的 Xcode 4.2 项目在 iPhone 3G 4.2.1 上运行时遇到了同样的问题。这是我如何让它运行的方法。
1)将目标的“构建设置”==>“架构”从“标准(armv7)”更改为“其他”。添加 armv6 和 armv7。
2)将目标的“构建设置”==>“有效架构”更改为armv6和armv7。
3)将目标的“构建设置”==>“iOS部署目标”更改为iOS 4.2。
https://i.stack.imgur.com/9jAHt.png
https://i.stack.imgur.com/y0rfw.png
顺便说一句,当我尝试通过管理器手动添加应用程序并报告时,我发现了这一点:
无法安装应用程序 /Users/.../TestsDebug.app 应用程序的 Info.plist 指定了设备能力要求,Dev iPhone 3G 不满足这些要求
之后一切都应该工作。谈论一个 PITA。
转到 Xcode > Preferences > Downloads 并安装对旧 iOS 版本的调试支持。
mmorris 让我接近解决问题...在 Info.plist 中,我必须将所需的设备功能设置为 armv6,而不是 armv7 希望这也有助于其他人。
您需要连接手机,然后转到组织者。 Xcode 应该会自动请求旧版本。
有关更多信息,请参阅开发人员页面。它在 4.2 beta 的注释中有所描述
我在尝试在旧的 iPod Touch 上运行我的应用程序时遇到了类似的问题。我升级到 Xcode 4.3.3,该应用程序将不再在旧硬件上的调试器中运行。
我相信这里关于“架构”和“所需设备功能”的其他评论是正确指定的重要细节。不幸的是,它们不足以解决我的问题。
就我而言,我发现构建方案是罪魁祸首。 Xcode 4.3.3 在升级我的项目时提示我从 GDB 调试器切换到 LLDB。当我将方案的 Run 操作改回 GDB 时,我能够在 Xcode 的旧硬件上再次运行该应用程序。
我发现我必须将 armv6 添加到架构中,但仍然无法正常工作。现在我已经从所需的功能中删除了 armv7,就是这样!有效!
这对我有用,如果你以前有旧版本的 Xcode,应该对你有用。如果没有,那么您应该按照其他人的建议从旧版本的 SDK 中获取 SDK:
sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
这个命令与其他命令只有一点点不同,但这些命令为我将文件放在了 SDKs 文件夹本身中 - 我们希望使用适当的名称创建它的子目录。
https://i.stack.imgur.com/64iyT.png
我刚刚删除了它...
https://i.stack.imgur.com/AsFrb.png
希望它会帮助别人。
不定期副业成功案例分享