我可以同时在多个iOS模拟器上运行Expo应用程序吗?

时间:2018-12-25 19:03:27

标签: ios-simulator expo

是否可以同时在多个版本的iOS Simulator上运行Expo应用?自动刷新两到三部iPhone真是太好了,这样可以轻松测试具有不同屏幕尺寸的布局。

(我知道我可以使用多个硬件设备来做到这一点,而且我知道我可以更改iOS Simulator应该使用的设备。)

1 个答案:

答案 0 :(得分:8)

此命令:

expo-cli ios

不允许您选择要在其上运行的实际模拟器。

假设已安装Expo Viewer应用程序并使用了默认端口,则此命令允许您在特定的模拟器上打开它:

xcrun simctl openurl <some-device-id> exp://127.0.0.1:19000

在多个模拟器上运行Expo

它可以一次在多个模拟器上运行。

由于每天都要从头开始重新启动选定的模拟器有点麻烦,因此,以下是一个小型Shell脚本,该脚本会根据其设备ID自动启动三个特定的模拟器并在其上打开Expo应用程序:

#!/bin/bash
declare -a simulators=("0FAE2F92-9EF7-4C4A-8F9D-097A056F8CC0" "BFCDD662-E4DE-4C08-9DF6-CAACA7C00CEC" "1A6959A0-C10F-474B-96C5-7E8955FBDD80")

for i in "${simulators[@]}"
do
    xcrun instruments -w $i
    #xcrun simctl install $i ~/.expo/ios-simulator-app-cache/Exponent-2.9.0.app
    xcrun simctl openurl $i exp://127.0.0.1:19000      
done

在这里您可以在阵列中看到三个不同的模拟器设备ID。当然,您必须使用自己想要使用的模拟器的设备ID。

顺便说一句:如果您曾经安装Exponent-x.x.x.app,则可在主目录的隐藏文件夹中找到它。因此,请致电:

xcrun simctl install <some-device-id> ~/.expo/ios-simulator-app-cache/Exponent-2.9.0.app

您甚至可以从命令行在特定的模拟器中安装Expo应用程序(另请参见上面的shell脚本中的注释行)。

如何确定模拟器ID

xcrun simctl list

这将显示每个模拟器的相应设备ID。

一个小提示:随着时间的流逝,有些模拟器条目在升级后不再可用。要使用简单的命令将其删除,请按以下步骤操作:

xcrun simctl delete unavailable

演示

这是脚本的简短演示:

  • 启动了三个模拟器
  • Expo应用已打开

然后更改演示应用程序的源代码。所有三个模拟器都立即更新。

demo of multiple iOS simulators