为啥 Xcode 4.1 说我的 iPad 专用应用程序可以在 iPhone 模拟器中运行?
Posted
技术标签:
【中文标题】为啥 Xcode 4.1 说我的 iPad 专用应用程序可以在 iPhone 模拟器中运行?【英文标题】:Why does Xcode 4.1 say my iPad only app can run in the iPhone Simulator?为什么 Xcode 4.1 说我的 iPad 专用应用程序可以在 iPhone 模拟器中运行? 【发布时间】:2011-09-05 15:40:24 【问题描述】:我有一个仅限 iPad 的应用程序(目标设备系列是 iPad,架构是 armv7),但 Xcode 提供了 iPhone 和 iPad 模拟器以在方案/设备下拉列表中部署。如果我从头开始创建一个仅限 iPad 的新项目,则只有 iPad Simulator 可用作部署目标。
为什么我的仅 iPad 项目将 iPhone 模拟器显示为设备选项?
【问题讨论】:
了解您使用的 Xcode 和 ios SDK 版本会很有用。 更新了标题以包含 xcode 版本 4.1 在 Xcode 4.2.1 中看到相同的内容。我目前正在开发两个 iPad 应用程序;一个只给我 iPad 模拟器选项,另一个可以在 iPad 和 iPhone 模拟器中运行。我无法发现(诚然完全不同的)项目之间有任何显着差异。 当您在 iPhone 模拟器中运行应用程序时会发生什么?此外,当您将真正的 iPhone 插入计算机时会发生什么?这是否也作为一个选项出现?你能跑吗? 【参考方案1】:刚刚在我们的应用中解决了这个问题;这是由于将一个子项目设置为针对 iPhone。如果你有任何子项目,也要检查它们的目标设置;因为显然它会影响您的***方案选择。
【讨论】:
【参考方案2】:如果您也有测试目标,请确保在其构建设置中将Targeted Device Family设置为 iPad 在您应用的目标中。这可能听起来很傻,但我以前见过。
然后,如其他答案所述,为您可能已包含在应用项目中的任何子项目目标选中相同的选项。
【讨论】:
将所有目标的目标设备系列 (Xcode 8.3.2) 更改为 iPad 为我修复了它。请注意,没有 iPad 选项。相反,你只有数字。 2 号用于 iPad。【参考方案3】:快速搜索“通用”的目标构建设置,并在必要时将其更改为 iPad。这是发生这种情况的唯一原因。我唯一可以建议的另一件事是重新启动计算机。有时 Xcode 甚至为我提供了 iOS 应用程序的 Mac 构建选项!如果这些都不起作用,好吧,如果它没有坏就不要修复它,就像你可以在 iPad 模拟器中构建和测试它一样,有什么问题??
【讨论】:
这不是它可能发生的唯一原因。 iPad 应用程序应针对 通用宏 (ARCHS_UNIVERSAL_IPHONE_OS) 的 armv7 进行优化。正如我所说,我已经将 iPad 仅针对目标设备系列。无论如何,只有新 iPad 的项目也指定了 armv7,没有任何问题。我可以忽略 iPhone 部署选项,但问题是,我怀疑项目中发生了我不知道的其他事情。【参考方案4】:如果您最初启动了一个通用应用程序,并在以后更改它而不重新调整设置,则可能会发生这种情况。只需更改设置(单击主项目文件夹并更新设置),应该没有问题。您还可以简单地创建一个新的 iPad 应用程序并将所有文件复制到那里。您可以选择 iPad 设备系列来部署您的应用程序,它应该记住每次运行它时的设置,所以不要费心更改它或弄清楚为什么它允许您在两个设备上部署;只要它工作正常,就继续编程和测试。
【讨论】:
您建议我更改哪些设置?创建一个新项目甚至是不可能的——我们说的是大约 500 个源代码文件、十几个外部项目,以及需要重新集成到项目中的数百个资源和配置文件。 我从 Universal 应用开始,只是将“Targeted Device Family”更改为 iPad,然后它只适用于 iPad。没问题。 如果您阅读您的问题,它说的是我,而不是我们。我以为你刚刚开始,只有几个文件。我提到了更改 Xcode 和 Simulator 的设置。如果您单击项目文件夹(上面带有“A”的蓝色图标,并且您的项目名称就在它旁边),然后选择您拥有的目标。单击 iOS Application Target 下的 Devices 并将其更改为 iPad。应该这样做。 感谢您的意见。正如我在问题中所指出的,目标设备系列已经 iPad。以上是关于为啥 Xcode 4.1 说我的 iPad 专用应用程序可以在 iPhone 模拟器中运行?的主要内容,如果未能解决你的问题,请参考以下文章