找不到iPhone X模拟器。使用--verbose标志运行CLI以获取更多详细信息

Sin*_*N75 3 xcode ios ios-simulator react-native

我下载了最近发布的Xcode 11 beta版本,现在我无法在模拟器上运行React-Native应用程序。我知道有关堆栈溢出的一些问题,但是它们没有帮助。问题是没有

/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js
Run Code Online (Sandbox Code Playgroud)

文件。在该local-cli文件夹中只有一个文件名为cli.js

'use strict';

var cli = require('@react-native-community/cli');

if (require.main === module) {
  cli.run();
}

module.exports = cli;
Run Code Online (Sandbox Code Playgroud)

JC *_*ngo 8

error Could not find "iPhone X" simulator. Run CLI with --verbose flag for more details.

问题

如果您尝试使用最新的Xcode(11)进行操作,则没有iPhone X!

单独运行模拟器,在顶部菜单中,在“硬件,设备,iOS 13.0”下查看。

您将看到:-iPhone 8-iPhone 8 Plus-iPhone XS-iPhone XS Max-iPhone XR-...和一些iPad

执行run-ios时,react-native旨在匹配请求的设备。

内部硬编码默认值为iPhoneX。

尝试匹配请求的设备的函数在:

/node_modules/@react-native-community/cli-platform-ios/build/commands/runIOS/findMatchingSimulator.js

设计此功能是为了使您可以为其提供设备和可选的版本号。

如果找不到给定的设备和版本,则默认情况下它将使用列表中的第一个设备返回匹配项。

但是...实际上,第一个设备是手表,并且任何手表都无法匹配,因此该函数将返回null。

解决方案1-使用现有的Xcode iOS设备

如上所述,首先自己运行模拟器,并记下所需的iPhone或iPad。

然后将此名称作为可选参数传递给run-ios命令行命令,如下所示:

react-native run-ios --simulator="iPhone 8"

解决方案2-添加新的Xcode iOS设备

根据Xcode 11发行说明

“默认情况下,Xcode不再创建所有可用的iOS模拟器设备。而是创建了一组最常用的设备。要创建其他设备(或一个设备的多个实例),请打开“设备”窗口,选择模拟器,单击+按钮,输入名称,然后选择相关的设备类型和操作系统版本。在终端中,执行xcrun simctl create命令,例如xcrun simctl create“ My iPhone 7”“ iPhone 7” iOS13.0。(49428617)“

在Xcode中,您需要添加一个名为“ iPhone X”的新设备。

在这里也回答:

错误找不到iPhone X模拟器#418


SHG*_*G21 5

如果您的项目是使用react-native init 创建的,则在 CLI< 中,您应该能够键入 xcrun simctl list devices以获取所有可用模拟器的列表。滚动到顶部查看可用设备列表。如果您想使用 iPhone XS Max 运行模拟器,那么只需; react-native run-ios --simulator="iPhone XS Max"

  • 是的,已经尝试过了。设备列表正在显示,但是当我使用任何命令运行时,它说找不到模拟器 (2认同)