我可以从 Xcode 将 iOS 5.1 SDK 应用程序部署到运行 iOS 6.0 的设备吗?
Posted
技术标签:
【中文标题】我可以从 Xcode 将 iOS 5.1 SDK 应用程序部署到运行 iOS 6.0 的设备吗?【英文标题】:Can I deploy an iOS 5.1 SDK app to a device running iOS 6.0 from Xcode? 【发布时间】:2012-10-03 09:01:31 【问题描述】:我最近将我的 iPad 升级到了 ios 6.0,但我的 Xcode 安装在 4.4.1 版本和 iOS SDK 5.1,因为我们即将打包一个客户端应用程序并且不想冒险切换 SDK 的/ iOS 版本处于开发后期。
现在这个 iPad 不再以其全名显示在构建目标列表中,它只是显示“iOS 设备”。当我尝试在 iPad 上进行部署时,它会通知我:“Xcode 无法使用所选设备运行。没有可用的兼容 iOS 版本的预置 iOS 设备。将 iOS 设备与最新版本的 iOS 连接以运行您的应用程序或选择 iOS 模拟器作为目的地。” 组织者还告诉我 iPad 上的 iOS 版本与 Xcode 中的任何 SDK 版本都不匹配。
这都是正确的,但是我不应该能够将 5.1 应用部署到运行 6.0 的设备上吗?我之前使用 5.1 构建的应用程序继续在此设备上运行良好,为什么新应用程序不应该这样做呢?我有一个奇怪的问题,还是 Xcode 中的这种正常行为?
谢谢!
编辑:后续问题:如果我升级我的 Xcode 版本来解决这个问题,我是否仍然可以为 5.1 SDK 构建并绝对确定该应用程序可以在我客户的 5.1 设备上运行?这是我最关心的问题。
【问题讨论】:
【参考方案1】:您仍然可以部署较旧的应用程序,但不能使用 Xcode。相反,您需要创建一个 ipa 存档并通过 iTunes 或使用诸如 Testflight 或其他一些无线 (OTA) 分发工具进行安装。
或者,是的,您可以升级您的 Xcode 版本。但是,您可能会遇到更多问题,因为您使用的第三方库可能尚未针对 armv7s 进行编译。所以你需要升级它们。如果是这种情况,您将从链接器中看到此错误:
ld: file is universal (3 slices) but does not contain a(n) armv7s slice
有关该特定问题的更多信息,请参阅 *** 上的其他地方,例如
File is universal (three slices), but it does not contain a(n) ARMv7-s slice error for static libraries on iOS, anyway to bypass?
当然,这些都不会阻止您在模拟器中工作。
然而,在设备上运行,总而言之,一个适合我的好解决方案是下载 Xcode 4.5 dmg。由于 Xcode 已经可以从 App Store 获得,它现在是一个独立的包。您现在可以在同一台机器上愉快地共存多个版本。
我这样做并将 Xcode 4.5 用于新的 iOS 6 内容,同时继续使用 4.4 处理旧应用程序。
【讨论】:
这就澄清了。非常感谢! 嗨 Max,我已经在我的设备上安装了 iOS 5.1,并且想运行一个仅是 iOS6 SDK 的项目,它将在我的设备上运行,我将项目的构建目标更改为 5.0。应用安装成功,但在某些时候确实崩溃了【参考方案2】:首先,尝试转到 Xcode Organizer(右上角的小图标),看看是否可以启用您的设备进行开发(单击设备,然后应该会出现其详细信息)。这有可能会下载所有必要的东西以允许 Xcode 使用您的新 iOS 设备(调试符号和类似的东西)。
如果这不起作用,那么您所描述的问题只是与您的开发环境太旧并且无法管理运行 iOS6 的设备有关。 无论如何,这不会阻止您的 5.1 应用程序部署在运行 iOS6 的设备上;唯一的问题是你不能从你的旧 Xcode 中做到这一点。
如果所有其他方法都失败了,您可以尝试通过 iTunes 手动安装 5.1 应用程序,就像开发团队外部的任何测试人员都会做的那样。这应该可以。
【讨论】:
感谢@sergio,我不得不重新启用我的设备进行开发。是因为我更新了我的 iPhone 吗?不知道,但这成功了! @Eric:很高兴它有帮助!是的,我认为更新您的设备需要重新启用它以进行开发(以便下载新符号)。以上是关于我可以从 Xcode 将 iOS 5.1 SDK 应用程序部署到运行 iOS 6.0 的设备吗?的主要内容,如果未能解决你的问题,请参考以下文章
xcode 4.2 中的 iOS 5.1 (9B176) SDK 问题
Mountain Lion 上 xCode 4.5.1 中的 iOS 4 和 iOS 5 SDK
为啥当我尝试在 ios 7.1 sdk、xcode 5.1 中调用 deallocate 或 release 时出现错误?
Xcode 4.3.2 + iOS SDK 5.1 异常断点不起作用