新的 Xcode 6 项目 - 如何在 iOS 7 模拟器中运行
Posted
技术标签:
【中文标题】新的 Xcode 6 项目 - 如何在 iOS 7 模拟器中运行【英文标题】:New Xcode 6 Project - How to run in the iOS 7 Simulator 【发布时间】:2014-11-20 12:54:23 【问题描述】:我尝试使用 Xcode 6 创建一个新项目,该项目也可在 ios 7 上运行。我创建了一个新项目,然后执行以下操作:
-
将项目的 iOS 部署目标设置为 7.0
在资产中引用了启动图像源
不过,当尝试在 iOS 7 模拟器上运行时,仍会显示以下错误:
“iPhone 5s 不可用。请选择其他设备并重试。”
(我的旧项目在 iOS 7 模拟器上运行良好。)
如何让新项目在 iOS 7 模拟器中运行?
编辑
xcrun simctl list
的输出如下:
== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
iPhone 5 (com.apple.CoreSimulator.SimDeviceType.iPhone-5)
iPhone 5s (com.apple.CoreSimulator.SimDeviceType.iPhone-5s)
iPhone 6 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus)
iPhone 6 (com.apple.CoreSimulator.SimDeviceType.iPhone-6)
iPad 2 (com.apple.CoreSimulator.SimDeviceType.iPad-2)
iPad Retina (com.apple.CoreSimulator.SimDeviceType.iPad-Retina)
iPad Air (com.apple.CoreSimulator.SimDeviceType.iPad-Air)
Resizable iPhone (com.apple.CoreSimulator.SimDeviceType.Resizable-iPhone)
Resizable iPad (com.apple.CoreSimulator.SimDeviceType.Resizable-iPad)
== Runtimes ==
iOS 7.0 (7.0 - Unknown) (com.apple.CoreSimulator.SimRuntime.iOS-7-0) (unavailable, runtime path not found)
iOS 7.1 (7.1 - Unknown) (com.apple.CoreSimulator.SimRuntime.iOS-7-1) (unavailable, runtime path not found)
iOS 8.0 (8.0 - 12A365) (com.apple.CoreSimulator.SimRuntime.iOS-8-0)
== Devices ==
-- iOS 7.0 --
iPhone 4s (9A55186B-9B91-4526-A2AB-EF0C49F592A4) (Shutdown) (unavailable)
iPhone 5 (D326EE14-21DA-4FA5-A229-F0BACDA6C9F3) (Shutdown) (unavailable)
iPhone 5s (1AC03181-38D5-4C24-9928-4EFDE83D0ACD) (Shutdown) (unavailable)
iPad 2 (212A00A7-1D1F-4392-8AE6-24C46EA9A507) (Shutdown) (unavailable)
iPad Retina (9471D6C8-DDE7-4D08-B015-89CA02ED4C46) (Shutdown) (unavailable)
iPad Air (E84ADD9C-7BA4-4EBF-B98E-DB6EAF99EFA6) (Shutdown) (unavailable)
-- iOS 7.1 --
iPhone 4s (836A9B30-D104-4D54-98A2-479F7F35F4EC) (Shutdown) (unavailable)
iPhone 5 (39EB7E74-4665-492B-9097-F454D083CFD8) (Shutdown) (unavailable)
iPhone 5s (DAE6E1F3-E4F1-4D4F-9C16-73B495A08415) (Shutdown) (unavailable)
iPad 2 (D34D496D-39CA-4D2E-9C6A-C5EB7B62C8DC) (Shutdown) (unavailable)
iPad Retina (8EFF2BF2-F639-46C2-AB21-8B28858DF778) (Shutdown) (unavailable)
iPad Air (434AB478-DD08-481D-A75D-3EA94A440814) (Shutdown) (unavailable)
-- iOS 8.0 --
iPhone 4s (EEAA9E7C-867E-4E71-99CE-A5C729FB2F21) (Shutdown)
iPhone 5 (DA90266D-1FF5-4E84-B806-DBE49F1A86DB) (Shutdown)
iPhone 5s (B673A5D8-7992-41AE-9B43-200C064ECFDA) (Shutdown)
iPhone 6 Plus (19F9C682-B4D8-488B-82C4-8B5BAD8D38FB) (Shutdown)
iPhone 6 (2FCC7DD6-2274-4B7F-A151-1A49AB31AE65) (Booted)
iPad 2 (801852DD-7EFA-4336-9686-42C5D65DAABD) (Shutdown)
iPad Retina (314D3C76-6D20-466B-AD61-567CE202556F) (Shutdown)
iPad Air (5B47FA82-F1F6-43C2-A373-BABBEFA0AB22) (Shutdown)
Resizable iPhone (8F4B8FAF-AEB9-4782-AC09-6F8B4BDD37AA) (Shutdown)
Resizable iPad (DEBDB255-8650-4B8D-B161-D9FA26331ACD) (Shutdown)
【问题讨论】:
'xcrun simctl list' 的输出是什么? 我更新了答案——但我有另一个预感:最近我更新到 Xcode 6.0.1,也许我需要重新下载模拟器? 【参考方案1】:我也遇到了这个问题。
Preferences
-> Downloads
-> Components
然后点击下载按钮。
如果您之前下载过它们,Xcode 会直接安装它们。也许您刚刚更新了 Xcode。 Xcode 6 默认没有安装 7.x 模拟器。但是,您将它们安装在以前版本的 Xcode 上。
【讨论】:
Upvotes 把我吸引到了这个答案,谢天谢地。我很高兴我这样做了,而不是“一个一个地删除”然后不得不重新启动计算机,而我正要这样做。 同样的问题...似乎只需要在 xcode 中下载缺少的模拟器;不删除,不重启,不乱,不大惊小怪。太糟糕了,xcode 无法自己解决这个问题并提供有意义的消息。【参考方案2】:在“设备”窗口中,将所有设备一一删除。现在将它们一一添加回来。现在重新启动计算机(不仅仅是 Xcode)。这将使您只剩下好的设备,您将知道是否需要下载较旧的模拟器。
【讨论】:
添加设备的部分不起作用 - 因为只有 iOS 8 可用。似乎 Xcode 6.0.1 的更新真的打破了 7.x 模拟器。现在重新下载模拟器。 这正是我建议的原因。如果模拟器消失了,您将无法重新添加这些设备。这就是发生的事情。 我觉得这是个糟糕的建议。我这样做了,现在必须手动将它们添加回来。我明白你现在的意思,但我认为下面下载 7.1 模拟的答案可能会奏效。额外的工作 = 郁闷。 @badweasel 实际上我认为不时清理所有模拟器是个好主意。让我们不要夸大所涉及的工作量...... 这是一项需要一个小时或更长时间的任务。所以我认为人们应该知道这一点。我最终只添加了几个,因为我没有时间恢复它。总有一天我会清除 Xcode 并重新加载它。这将比手动添加它们花费更少的时间。应该有一个单击方式来添加所有模拟器组合,而不必一次完成。【参考方案3】:我通过执行以下步骤解决了这个问题:
1) 从我的 Xcode 6.1 --> 打开可用的模拟器/设备设备列表。
2) 然后点击列表底部的更多模拟器按钮 --> 下载模拟器窗口打开。
3) 下载您的愿望模拟器 7.0 或 7.1 或两者。
如果之前下载过模拟器,Xcode会自动安装。
查看屏幕截图:
希望这对你有帮助。
【讨论】:
【参考方案4】:根据 simctl list 的输出,您应该在 Xcode 中看到 8.0 模拟器,但看不到 7.x 模拟器。 7.x 模拟器将在您下载并安装 7.x 模拟器运行时出现。
【讨论】:
是的,我确实看到了它们,但它们坏了。从 Xcode 6.0.0 GM 更新到 6.0.1 破坏了它们。 你能详细说明一下“破碎”吗?是什么让你觉得他们坏了?它们的行为似乎正确,因为它们没有被列为可用,因为您需要下载 7.x 运行时才能启动它们。 他们被列出来了。我无法在它们上运行项目,显示了我的问题中的错误。 奇数。我不确定该错误来自哪里。如果您再次看到它,请提供屏幕截图并查看 ~/Library/Logs/CoreSimulator/CoreSimulator.log 以获取可能的其他信息。【参考方案5】:我面临同样的问题。我已经修好了。当您更新到 Xcode 6.0+ 时,Xcode 将破坏 iOS 7 模拟器的运行时。虽然您有 iOS 7.1 的设备但没有运行时,但模拟器不可用。您必须重新下载 7.1 运行时。
但是我们都知道在 Xcode 中下载模拟器是很痛苦的。一种更简单的方法是从其他人的 Mac 复制“iOS 7.1 SDK”(在 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs 中)。
【讨论】:
以上是关于新的 Xcode 6 项目 - 如何在 iOS 7 模拟器中运行的主要内容,如果未能解决你的问题,请参考以下文章
如何在现有的 ios 测试项目中启用 xcode 7 UI 测试
如何管理适用于 iOS 7 和 iOS 6.0 的自动布局约束
如何在新的 iOS 7 和 Xcode 5 上使用旧 ios 版本构建我的应用程序