1

我最近将我的 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 设备上运行吗?这是我主要关心的问题。

4

2 回答 2

4

您仍然可以部署较旧的应用程序,但不能使用 Xcode。相反,您需要创建一个 ipa 存档并通过 iTunes 或使用诸如 Testflight 或其他一些无线 (OTA) 分发的工具进行安装。

或者,是的,您可以升级您的 Xcode 版本。但是,您可能会遇到更多问题,因为您使用的第三方库可能尚未针对 armv7s 进行编译。所以你需要升级它们。如果是这种情况,您将从链接器中看到此错误:

ld: file is universal (3 slices) but does not contain a(n) armv7s slice

有关该特定问题的更多信息,请参见 stackoverflow 的其他地方,例如

文件是通用的(三个切片),但它不包含 iOS 上静态库的(n)ARMv7-s 切片错误,无论如何要绕过?

当然,这些都不会阻止您在模拟器中工作。

然而,在设备上运行,总而言之,一个对我有用的好解决方案是下载 Xcode 4.5 dmg。由于 Xcode 已经可以从 App Store 获得,它现在是一个独立的包。您现在可以在同一台机器上愉快地共存多个版本。

我这样做并将 Xcode 4.5 用于新的 iOS 6 内容,同时继续使用 4.4 处理旧应用程序。

于 2012-10-03T09:17:01.887 回答
1

首先,尝试转到 Xcode Organizer(右上角的小图标),看看是否可以启用您的设备进行开发(单击设备,然后应显示其详细信息)。这有可能会下载所有必要的东西,以允许 Xcode 使用您较新的 iOS 设备(调试符号和类似的东西)。

如果这不起作用,那么您描述的问题只是与您的开发环境太旧并且无法管理运行 iOS6 的设备有关。无论如何,这不会阻止您的 5.1 应用程序部署在运行 iOS6 的设备上;唯一的事情是你不能从你的旧 Xcode 中做到这一点。

如果所有其他方法都失败了,您可以尝试通过 iTunes 手动安装 5.1 应用程序,就像开发团队外部的任何测试人员都会做的那样。这应该有效。

于 2012-10-03T09:06:14.000 回答