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

标签 ios-simulator expo

是否可以运行 Expo一次在多个版本的 iOS 模拟器上运行应用程序?让两三部 iPhone 自动刷新真的很棒,这样可以轻松测试不同屏幕尺寸的布局。

(我知道我可以使用多个硬件设备执行此操作,并且我知道我可以更改 iOS 模拟器应该使用的设备。)

最佳答案

这个命令:

expo-cli ios

不允许您选择它应该运行的实际模拟器。

假设已安装 Expo 查看器应用程序并使用默认端口,此命令允许您在特定模拟器上打开它:
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.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

演示

这是脚本的简短演示:
  • 三个模拟器启动
  • 世博APP开通

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

    demo of multiple iOS simulators

    关于ios-simulator - 我可以同时在多个 iOS 模拟器上运行我的 Expo 应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53924934/

    相关文章:

    iphone - NSDateFormatter 模拟器上的日期不正确,设备上的日期正确

    android - Admob : Ad serving is limited - The number of ads you can show has been limited. 详情请访问政策中心

    ios - 带有 Expo 的独立应用程序 iOS 尺寸太大 (218mb)

    react-native - sonoma 14.0更新后无法在react-native/expo中安装cocoapods

    android - 应用程序仅在真实设备上崩溃 | react 原生 |世博会

    objective-c - NSHTTPURLResponse statusCode 在应该为 401 时返回零

    macos - 从 Mac OS X 复制不会复制到 iPhone 模拟器

    javascript - React Native 底部选项卡导航不起作用

    ios - 如何在 iPhone 上使用 sencha touch 调试 sass

    safari - 在导航上保持 safari 远程调试打开