我正在规划一款需要多个用户的游戏,想知道是否有办法启动多个 iPhone 模拟器实例。在菜单和谷歌搜索结果中都没有找到相关信息,但我只是想确认我没有漏看什么。
我正在规划一款需要多个用户的游戏,想知道是否有办法启动多个 iPhone 模拟器实例。在菜单和谷歌搜索结果中都没有找到相关信息,但我只是想确认我没有漏看什么。
只有在多用户的情况下才能实现。
阅读以下内容:http://www.coderebel.com/2010/08/31/iphone_simulator
假设您有两个项目(P1,P2)想要同时进行调试,请按照以下步骤操作。
设置步骤:
调试步骤:
不幸的是,需要不时更改用户很麻烦,但目前我还没有找到更好的解决方案。希望这可以帮助到您。
有一种简单的方法可以做到这一点,而不需要使用多个用户。请注意,您将无法连接到调试器。请注意,下面的说明适用于XCode 6+。您可以跳过此说明,直接向下滚动到下面的结束部分。
从这里的答案中,我们可以看到您可以通过命令行启动任何模拟器:
open -a "iOS Simulator" --args -CurrentDeviceUDID
您可以通过在控制台上运行xcrun simctl list
命令来查找设备 ID(以及您所有的模拟器)。它会生成像这样的列表。设备 ID 是大括号内的代码:
== Runtimes ==
iOS 8.3 (8.3 - 12F69) (com.apple.CoreSimulator.SimRuntime.iOS-8-3)
== Devices ==
-- iOS 8.3 --
iPhone 4s (99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8) (Shutdown)
iPhone 5 (K262AF11-ADD2-4FDA-ACBA-8C80DD9D4AA1) (Shutdown)
iPhone 5s (337KDC51-0A4B-47DB-8966-83562FD92C93) (Shutdown)
iPhone 6 Plus (9GK714E2-F713-4F98-A96E-C72ACD6571A8) (Shutdown)
-- iOS 8.2 --
etc continued....
因此,要使用以上示例运行模拟器,请在控制台上运行以下命令:
因此,要使用上述示例运行模拟器,请在控制台上运行以下命令:
open -n /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'
我们使用-n
标志代替-a
标志,因为-a
标志指定用于打开文件的应用程序,而-n
标志即使已经运行一个实例,也会打开应用程序的新实例。请使用man open
命令了解所有这些内容。
还要确保您的模拟器路径正确。
还有一件事需要注意,如果您像这样运行模拟器,那么您可能只有有限数量的模拟器。由于它是有限的,您可能希望在不中断已经在屏幕上的模拟器的情况下启动它。我们可以从这里获得答案,在那里他向您展示如何创建一个新模拟器并删除一个模拟器。
A) 首先,在启动模拟器之前创建一个模拟器。
用法:simctl create "name" "device type id" "runtime id"
xcrun simctl create "mynewsimulator" "iPhone 6" "com.apple.CoreSimulator.SimRuntime.iOS-8-3"
你可以从我上面运行的命令xcrun simctl list
中找到运行时ID。在运行上述命令后,设备ID将被打印在控制台屏幕上。请记下它作为启动下面显示的模拟器的最后一个参数。假设此ID为99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8
。open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'
C)在模拟器使用完毕后,将其删除。
xcrun simctl delete 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8
所有这些内容都可以放在一个.sh文件中以便于运行。
如果您决定将所有这些内容放入sh文件中,请注意在每个命令后加上wait
或sleep
命令。
[编辑2017] 我看到XCode 9现在将支持多个模拟器。等待看看它将如何工作。
如果你有一份Mac OS X服务器许可证,另一个选择(虽然可能过度)是虚拟化一个Mac OS X服务器实例,并在虚拟机中运行第二个模拟器。
嗯...我认为你在这里没有遗漏任何东西。据我所知,SDK中没有技术能够模拟多个设备--虽然这将是一个有用的功能。我认为你唯一的选择是获得第二个iPhone OS设备,或者找一个也有iPhone OS设备的朋友让你用于测试。
按照以下步骤测试您的应用程序。
首先,您需要完成一个整个过程的任务: 进入项目 -> 编辑项目设置 -> 选中选项 - 并行构建独立目标。
注意:一定要小心操作,否则您将不得不重置模拟器 重置模拟器 -> 运行模拟器 -> iPhone模拟器 -> 重置内容和设置...
现在,您在模拟器中有两个应用程序,可以在所有实例上测试应用程序。
希望这能帮到您 :)
是的,现在这是可能的,而且也相当容易。
你唯一需要的就是xctool
,Facebook的构建工具和一个Ruby gem。Ruby gem有助于创建/销毁测试期间所需的模拟器。
您可以在此链接上阅读完整文档:
https://github.com/plu/parallel_ios_tests
我正在使用这种方法,并且同时在4个iOS模拟器上运行我的测试。
支持Xcode 9及以上版本。
(来源:WWDC 2017)