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)
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”的新设备。
在这里也回答:
如果您的项目是使用react-native init 创建的,则在 CLI< 中,您应该能够键入
xcrun simctl list devices以获取所有可用模拟器的列表。滚动到顶部查看可用设备列表。如果您想使用 iPhone XS Max 运行模拟器,那么只需;
react-native run-ios --simulator="iPhone XS Max"
| 归档时间: |
|
| 查看次数: |
4147 次 |
| 最近记录: |