刚刚将我的Mac更新到Ventura的正式版本,我无法通过react-native run-ios
启动我的应用程序。
预期行为:
运行react-native run-ios
将启动一个Xcode模拟器和一个运行Metro的终端窗口。
当前行为:
Xcode模拟器打开,主终端显示应用程序构建成功,但抛出错误,而不是打开地铁终端:
无法打开“launchPackager.command”,因为不允许(null)在终端中打开文档。
模拟器只是显示一个白色,无法进行交互。
我所尝试的
- 手动打开
node_modules/react-native/scripts/launchPackager.command
- 打开Metro终端,但未连接到应用程序
警告未连接任何应用。向所有React Native应用发送“重新加载”失败。请确保您的应用正在模拟器中或通过USB连接的手机上运行。info重新加载应用...
- 授予终端完全磁盘访问权限(无更改)
3条答案
按热度按时间h22fl7wq1#
我在升级到macOS Ventura后遇到了这种情况。我碰巧使用iTerm作为我的主终端,而不是内置的Terminal.app,所以下面的修复 * 仅适用于这种情况 *:
将iTerm设置为 *.command文件的默认处理程序
1.在Finder中打开节点模块/React Native/脚本/(
open node_modules/react-native/scripts/
)1.右键单击launchPackager.命令并单击打开方式,然后选择其他...
1.在“应用程序”目录中,选择iTerm并单击始终打开方式
在此之后,您可能需要从此终端窗口再次运行
npm run ios
。但是,从现在开始,Metro将在新的iTerm选项卡中打开,而不是尝试在新的终端窗口中打开命令。对我来说,这是理想的行为,它消除了这个警告。
注意将来,任何
*.command
文件都将使用iTerm而不是Terminal打开。e0bqpujr2#
我也遇到了和你一样的问题,我安装了另一个终端(iTerm2),然后随机找到一个.command文件,在显示介绍中,将默认打开方式改为iTerm2 enter image description here
uurv41yg3#
我在将MacOS升级到Ventura 13.1后遇到了这个问题。
如果你不想使用iTerm,我找到的解决方法是在
node-modules/react-native/scripts/
中查找launchPackager.command
文件,并在每次你第一次运行应用时手动打开该文件(特别是当错误弹出窗口出现时)。我知道手动处理不是最好的,但我不想使用iTerm:)