“launchPackager.command” can’t be opened because (null) is not allowed to open documents in Terminal.

回答 5 浏览 6621 2022-10-24

刚把我的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...

  • 给予终端全盘访问权(没有变化)。
mattjl 提问于2022-10-24
@author 你是否能够解决这个问题?Kartik Bhalla 2022-12-15
@KartikBhalla 下面gpmcadam的解决方案对我有用。我当时使用的是warp终端,但现在换回了iTerm,它也适用于这个终端。mattjl 2022-12-18
5 个回答
#1楼 已采纳
得票数 21

我在升级到macOS Ventura后发生了这种情况。我碰巧使用iTerm作为我的主要终端,而不是内置的Terminal.app,所以下面的修复只适用于这种情况

将iTerm设置为*.command文件的默认处理程序。

  1. 在Finder中打开node_modules/react-native/scripts/(open node_modules/react-native/scripts/)。
  2. launchPackager.command上点击右键,并点击打开,然后选择其他......
  3. 在您的应用程序目录中,选择iTerm,并点击总是用打开。

在此之后,你可能需要从这个终端窗口再次运行npm run ios。然而,从现在开始,Metro将在一个新的iTerm标签中打开,而不是试图在一个新的终端窗口中打开命令。

对我来说,这是我想要的行为,而且它消除了这个警告。

注意今后,任何*.command文件现在都将用iTerm而不是Term打开。

gpmcadam 提问于2022-10-29
这对我来说有点作用,我基本上找到了同样的解决方法,但使用的是Warp终端。只是这个命令不能自动运行,这让我有点沮丧。我仍然不得不在模拟器中关闭应用程序,重新打开,并重新加载metro,以使其捆绑。mattjl 2022-11-05
安卓的情况如何?我运行命令react-native run-android,我只在visual studio代码自己的终端得到错误,而不是在终端应用程序本身。Mehdi Faraji 2022-12-24
事实上,我在我的应用程序文件夹中没有看到iTerm。Abdullah 2023-02-07
如果在 "应用程序 "中找不到它,请在 "实用程序 "文件夹中寻找,然后应该会看到 "终端"。Justin Jaeger 2023-02-08
#2楼
得票数 4

我遇到了和你一样的问题,我安装了另一个终端(iTerm2),然后随机找到一个.command文件,在显示介绍中,将默认的打开方式改为iTerm2

Mr.Cai 提问于2022-10-30
#3楼
得票数 1

我的MacOS升级到Ventura 13.1后,遇到了这个问题。

如果你不想使用iTerm,正如所接受的答案所建议的那样,我发现的解决方法是在node-modules/react-native/scripts/里面寻找launchPackager.command文件,并在每次你第一次运行你的应用程序时(特别是在出现错误弹出时)手动打开这个文件。这将打开已经在运行的metro的终端。

我知道手动处理并不是最好的,但我不想使用iTerm :)

Lorenzo Castillo 提问于2023-01-19
#4楼
得票数 0

使用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处理器。

enter image description here

enter image description here

Aykut Uludağ 提问于2023-01-30
Aykut Uludağ 修改于2023-02-01
#5楼
得票数 0

大多数情况下,你只需要删除node_modules,然后重新安装模块(npm i)。这种情况发生在项目从旧的mac复制过来的时候,而旧的用户创建了node_modules文件夹,或者系统认为是这样。

在我为我的终端配置了外观和感觉之后,这种情况发生在我身上--但用的是iterm2,哦,我的zsh,和powerlevel10k

Imthiyaz Muhammed 提问于2023-02-03
Imthiyaz Muhammed 修改于2023-02-03