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


当前回答

请确保.plist文件中的ATS设置是正确的。

你可以在/ios/{{project_name}}/Info.plist找到这个文件

Localhost必须定义为异常请求目标,如下所示:

<key>NSAppTransportSecurity</key>
    <dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

*(不要忘记在发布版本中删除此选项..)

其他回答

我也有同样的错误,只能通过Xcode运行应用程序。React-native run-ios不起作用。要解决这个问题,你需要删除YOUR_PROJECT/ios/build/的build文件夹。在此之后,您应该能够再次通过react-native run-ios运行您的应用程序。希望这能有所帮助。

如错误信息所示:

同意Xcode/iOS许可证需要管理员权限,请运行"sudo xcodebuild -license",然后重试此命令。

执行以下命令成功:

sudo xcodebuild -license

这是因为您的客户机无法连接到您的打包器服务器。

如果你是一个像我一样的中国程序员,我认为你可能会使用VPN通过GFW。当您的VPN工具处于“全局模式”时,您的所有请求都将通过世界旅行,无法到达本地主机

试试“自动代理模式”。

如果你不是来自中国,或者你的VPN设置已经是“自动代理模式”,我建议你关闭你的打包服务器,再试一次。

使用命令

react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle

大多数情况下,此问题发生在DNS查找/ IP查找无法找到本地主机时。

解决方案:

尝试将localhost ip添加到etc主机文件中。

你可以在etc主机文件(/etc/hosts)中添加以下代码行

127.0.0.1 localhost

255.255.255.255 广播主机

::1升。ocalhost

要确认这就是问题所在 你可以在safari上点击bundle url(如果你在chrome中尝试,这将解决,但safari将无法解决它)。http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false