当前位置:  开发笔记 > 编程语言 > 正文

有没有办法使用xcode/iphone sim模拟多个iphone?

如何解决《有没有办法使用xcode/iphonesim模拟多个iphone?》经验,为你挑选了3个好方法。

我正在计划一个需要多个用户的游戏,我想知道是否有办法启动iPhone模拟器的多个实例.我没有在菜单或Google搜索结果中看到任何内容,但我只是想确保我没有遗漏任何内容.



1> 小智..:

这是可能的,但只有多个用户.

请阅读:http://www.coderebel.com/2010/08/31/iphone_simulator

假设您有两个要同时调试的项目(P1,P2),请执行以下操作.

设置步骤:

    在Mac上创建一个新用户(U2)

    给它R/W访问P2,特别是它的构建文件夹.

    从上面的站点下载启动器应用程序并将其复制到应用程序.

调试步骤:

    如果正在运行,请关闭Xcode和模拟器

    使用U1启动iPhone Launcher.app.

    用U1启动Xcode,加载P1,开始调试.

    使用U2启动iPhone Launcher.app.

    用U2启动Xcode,加载P2,开始调试.

不幸的是,PITA必须时不时地改变用户,但到目前为止我还没有找到更好的解决方案.希望这可以帮助.



2> iOS Calendar..:

有一种方法可以轻松完成此操作而无需使用多个用户.请记住,您不会连接到调试器.请记住,下面的解释适用于XCode 6+.您可以跳过此说明,然后向下滚动到下面的包装部分.

从这里的答案我们可以看到您可以从命令行启动任何模拟器:

打开-a"iOS模拟器"--args -CurrentDeviceUDID

您可以通过xcrun simctl list在控制台上运行命令来查找deviceID(以及所有模拟器).它会生成这样的列表.设备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标志指定了用于打开文件的应用程序,而该-n标志打开了应用程序的新实例,即使其中一个已经在运行.使用该man open命令可以了解所有这些内容.

还要确保您的模拟器具有正确的路径.

还有一点需要注意,如果你像这样运行模拟器,很可能你的模拟器有限.由于它有限,你可能想要启动它而不会中断已经在屏幕上的那个.我们可以从这个回答解决了这个位置,在那里他展示了如何create a new simulator and delete one.

所以把它包起来,这就是你发动它们的方法.

A)首先在启动模拟器之前创建模拟器.

用法:simctl创建"名称""设备类型ID""运行时ID"

xcrun simctl create "mynewsimulator" "iPhone 6" "com.apple.CoreSimulator.SimRuntime.iOS-8-3"

您将从xcrun simctl list我上面运行的命令命令中找到运行时ID .运行上述命令后,将在控制台屏幕上打印deviceID.请注意它,因为您将需要作为启动下面显示的模拟器的最后一个参数.我们假设这个ID是99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

B)发射它

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文件中,请注意在每个命令后放置waitsleep命令.

[编辑2017] 我看到XCode 9现在将支持多个模拟器.等待看它将如何工作.



3> Ramin..:

尽管我可以告诉你,你不仅可以运行多个模拟器实例,而且当实际设备测试时间到来时,你也无法运行多个调试器实例.

这意味着要进行多设备应用程序,您需要将单个Mac分配给运行应用程序的单个iPhone /触摸设备(或模拟器实例).

我已经开始研究VMWare或Parallels是否能够以某种方式进入这个领域,但是如果不破解操作系统,就没有什么可以做的.

我建议您使用http://bugreporter.apple.com提交功能请求.


您可以根据需要运行任意数量的设备,问题只是模拟器.
在回答了这个问题之后,这可能是某些XCode版本中添加的功能,但仅供其他人查看时参考:XCode 5允许您运行多个调试器实例.
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有