我可以 运行 我的 Expo 应用程序同时在多个 iOS 模拟器上运行吗?
Can I run my Expo app on multiple iOS Simulators at once?
是否可以同时在 iOS 模拟器的多个版本上 运行 一个 Expo 应用程序?如果能有两三台iphone自动刷新就好了,方便测试不同屏幕尺寸的布局。
(我知道我可以用多个硬件设备做到这一点,我知道我可以改变设备 iOS 模拟器应该使用。)
这个命令:
expo-cli ios
不允许您选择它应该 运行 的实际模拟器。
假设安装了 Expo 查看器应用程序并使用默认端口,此命令允许您在特定模拟器上打开它:
xcrun simctl openurl <some-device-id> exp://127.0.0.1:19000
运行 多个模拟器上的博览会
可以在多个模拟器上同时运行
由于每天从头开始重新启动选定的模拟器有点麻烦,这里有一个小的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.14.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.14.0.app
您甚至可以从命令行在特定模拟器中安装 Expo 应用程序(另请参阅上面 shell 脚本中的注释行)。
注意:Exponent-2.14.0.app
版本会随着 Expo SDK 的升级而改变。 Exponent-2.14.0.app
附带 expo-cli --version
3.13.1,截至 2020 年 2 月 22 日为最新版本。
如何确定模拟器 ID
xcrun simctl list
这会显示每个模拟器对应的设备 ID。
小提示:随着时间的推移,有几个模拟器条目在升级后不再可用。要使用简单命令删除它们,请按以下步骤操作:
xcrun simctl delete unavailable
演示
这是脚本的简短演示:
- 启动了三个模拟器
- Expo 应用已打开
演示应用程序的源代码已更改。所有三个模拟器都同时更新。
已接受的答案在 2021 年不起作用,因为“工具”在 Xcode 13 中不再可用。
请按照以下说明操作:
将设备 ID 替换为您的设备 ID xcrun simctl list
。另外,将 Expo 版本替换为您机器上的版本。
#!/bin/zsh
declare -a simulators=("27D6B718-8348-4C4D-ADFC-6506C2A88EED" "531A59B8-6197-4620-904B-E55308D1EE96" "C08532FE-3CE4-4BB7-A04C-795F2FA7EFE1")
echo "STARTED"
open -a Simulator
wait_time=1
for i in $simulators[@]
do
echo "Boot $i"
xcrun simctl boot $i
sleep $wait_time
echo "Install Expo $i"
xcrun simctl install $i ~/.expo/ios-simulator-app-cache/Exponent-2.19.6.tar.app
sleep $wait_time
echo "Lauch Expo $i"
xcrun simctl openurl $i exp://127.0.0.1:19000
sleep $wait_time
done
echo "FINISHED"
是否可以同时在 iOS 模拟器的多个版本上 运行 一个 Expo 应用程序?如果能有两三台iphone自动刷新就好了,方便测试不同屏幕尺寸的布局。
(我知道我可以用多个硬件设备做到这一点,我知道我可以改变设备 iOS 模拟器应该使用。)
这个命令:
expo-cli ios
不允许您选择它应该 运行 的实际模拟器。
假设安装了 Expo 查看器应用程序并使用默认端口,此命令允许您在特定模拟器上打开它:
xcrun simctl openurl <some-device-id> exp://127.0.0.1:19000
运行 多个模拟器上的博览会
可以在多个模拟器上同时运行
由于每天从头开始重新启动选定的模拟器有点麻烦,这里有一个小的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.14.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.14.0.app
您甚至可以从命令行在特定模拟器中安装 Expo 应用程序(另请参阅上面 shell 脚本中的注释行)。
注意:Exponent-2.14.0.app
版本会随着 Expo SDK 的升级而改变。 Exponent-2.14.0.app
附带 expo-cli --version
3.13.1,截至 2020 年 2 月 22 日为最新版本。
如何确定模拟器 ID
xcrun simctl list
这会显示每个模拟器对应的设备 ID。
小提示:随着时间的推移,有几个模拟器条目在升级后不再可用。要使用简单命令删除它们,请按以下步骤操作:
xcrun simctl delete unavailable
演示
这是脚本的简短演示:
- 启动了三个模拟器
- Expo 应用已打开
演示应用程序的源代码已更改。所有三个模拟器都同时更新。
已接受的答案在 2021 年不起作用,因为“工具”在 Xcode 13 中不再可用。
请按照以下说明操作:
将设备 ID 替换为您的设备 ID xcrun simctl list
。另外,将 Expo 版本替换为您机器上的版本。
#!/bin/zsh
declare -a simulators=("27D6B718-8348-4C4D-ADFC-6506C2A88EED" "531A59B8-6197-4620-904B-E55308D1EE96" "C08532FE-3CE4-4BB7-A04C-795F2FA7EFE1")
echo "STARTED"
open -a Simulator
wait_time=1
for i in $simulators[@]
do
echo "Boot $i"
xcrun simctl boot $i
sleep $wait_time
echo "Install Expo $i"
xcrun simctl install $i ~/.expo/ios-simulator-app-cache/Exponent-2.19.6.tar.app
sleep $wait_time
echo "Lauch Expo $i"
xcrun simctl openurl $i exp://127.0.0.1:19000
sleep $wait_time
done
echo "FINISHED"