“launchPackager.command” can’t be opened because (null) is not allowed to open documents in Terminal.
刚把我的Mac更新到Ventura的正式版本,我不能通过react-native run-ios
来启动我的应用程序。
预期行为:
运行react-native run-ios
将启动一个Xcode模拟器和一个终端窗口,并运行Metro。
目前的行为:
Xcode模拟器打开了,主终端显示应用程序已成功构建,但却抛出了一个错误,而不是metro终端的打开。
“launchPackager.command” can’t be opened because (null) is not allowed to open documents in Terminal.
模拟器只是显示一个白色的屏幕,无法与之互动。
我已经尝试过的东西:
- 手动打开
node_modules/react-native/scripts/launchPackager.command
- 打开Metro终端,但没有连接到应用程序。
warn No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB. info Reloading app...
- 给予终端全盘访问权(没有变化)。
我在升级到macOS Ventura后发生了这种情况。我碰巧使用iTerm作为我的主要终端,而不是内置的Terminal.app,所以下面的修复只适用于这种情况。
将iTerm设置为*.command文件的默认处理程序。
- 在Finder中打开node_modules/react-native/scripts/(
open node_modules/react-native/scripts/
)。 - 在launchPackager.command上点击右键,并点击用打开,然后选择其他......。
- 在您的应用程序目录中,选择iTerm,并点击总是用打开。
在此之后,你可能需要从这个终端窗口再次运行npm run ios
。然而,从现在开始,Metro将在一个新的iTerm标签中打开,而不是试图在一个新的终端窗口中打开命令。
对我来说,这是我想要的行为,而且它消除了这个警告。
注意今后,任何*.command
文件现在都将用iTerm而不是Term打开。
react-native run-android
,我只在visual studio代码自己的终端得到错误,而不是在终端应用程序本身。
- Mehdi Faraji 2022-12-24
我遇到了和你一样的问题,我安装了另一个终端(iTerm2),然后随机找到一个.command文件,在显示介绍中,将默认的打开方式改为iTerm2
我的MacOS升级到Ventura 13.1后,遇到了这个问题。
如果你不想使用iTerm,正如所接受的答案所建议的那样,我发现的解决方法是在node-modules/react-native/scripts/
里面寻找launchPackager.command
文件,并在每次你第一次运行你的应用程序时(特别是在出现错误弹出时)手动打开这个文件。这将打开已经在运行的metro的终端。
我知道手动处理并不是最好的,但我不想使用iTerm :)
使用Intel版本的应用程序(Webstorm,Android Studio,其他IDE等...)解决了我的问题。我遇到了同样的问题,多亏了英特尔版本的Webstorm和Rosetta上的Xcode,我才能够在Pod上进行安装和其他操作。
注意:我使用的是英特尔版本的Android Studio,WebStorm。同时Xcode使用Rosetta 2。没有发现问题,一切都很完美。我可以毫无问题地开发React-Native & Native Android & iOS和Flutter应用程序。在此之前,我使用的是Silicon版本的WebStorm,几乎没有功能可以使用。
配置。MacBook Air,MacOS Ventura 13.2,苹果M1处理器。
大多数情况下,你只需要删除node_modules,然后重新安装模块(npm i)。这种情况发生在项目从旧的mac复制过来的时候,而旧的用户创建了node_modules文件夹,或者系统认为是这样。
在我为我的终端配置了外观和感觉之后,这种情况发生在我身上--但用的是iterm2,哦,我的zsh,和powerlevel10k