当我运行一个react-native项目时,我得到一个错误,没有bundle URL,但我不知道我做了什么错误,我很困惑。


当前回答

执行如下命令:

killall -9 node
rm -rf ios/build
react-native run-ios

它将打开launchpacker .command,应用程序将安装在ios模拟器上

其他回答

当您不允许通过localhost进行不安全连接时,或者您试图通过http接受不安全连接时,就会发生此问题。

要解决这个问题,在info.plist上添加这个:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>

执行如下命令:

killall -9 node
rm -rf ios/build
react-native run-ios

它将打开launchpacker .command,应用程序将安装在ios模拟器上

关闭/打开设备/ mac上的wi-fi,重建应用程序

更深层次的调试:查看XCode日志,它可能包含:“无法连接到服务器”和确切的URL。

在我的情况下,我不小心从Xcode的构建阶段删除了这个脚本。

所以,一定要有这个脚本。如果没有,只需点击“+”&选择“新建运行脚本阶段”,然后粘贴以下代码。

export NODE_BINARY=node
../node_modules/react-native/scripts/react-native-xcode.sh

如果像我一样,您有一个在终端会话(.bashrc/.bash_profile)启动时执行的命令集,它等待输入(在我的例子中,是SSH Key的密码短语,带SSH -add),那么您将注意到它实际上阻止打开的终端启动Metro服务器!

尝试在启动时禁用该命令(或者至少在React Native打开的终端中禁用)。这对我很管用!