5

将我的 React Native 应用程序更新到最新版本 ( 0.60.4) 后,使用启动我的应用程序react-native run-ios将导致我的应用程序在没有 Metro Bundler 的情况下启动。

然后应用程序将显示以下错误: 在此处输入图像描述

为了让我的应用程序正常运行,我需要使用启动 Metro Bundlernpm start然后运行react-native run-ios​​.

尽管这是一种解决方法,但以前我没有遇到此问题,只需运行即可react-native run-ios自动启动 Metro Bundler。我该如何解决这个问题?

编辑:NSAppTransportSecurity来自Info.plist

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

2 回答 2

10

我想这个问题在将现有项目升级到 React Native 时很常见v0.60.+

对于在 Mac 上遇到此问题的任何人:

  1. 打开XcodeBuild Phases在您的项目下找到。
  2. 点击Editor-> Add Build Phase-> Add Run Script Build Phase在此处输入图像描述
  3. 点击选项卡Run Script底部新生成的Build Phases
  4. 粘贴以下代码:
export RCT_METRO_PORT="${RCT_METRO_PORT:=8081}"
echo "export RCT_METRO_PORT=${RCT_METRO_PORT}" > "${SRCROOT}/../node_modules/react-native/scripts/.packager.env"
if [ -z "${RCT_NO_LAUNCH_PACKAGER+xxx}" ] ; then
if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then
if ! curl -s "http://localhost:${RCT_METRO_PORT}/status" | grep -q "packager-status:running" ; then
echo "Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly"
exit 2
fi
else
open "$SRCROOT/../node_modules/react-native/scripts/launchPackager.command" || echo "Can't start packager automatically"
fi
fi
  1. 通过 启动您的项目XcodeMetro Bundler现在应该会自动启动。
  2. 保存更改后,下次react-native run-ios在终端中运行时,Metro Bundler将自动启动,No bundle URL present错误将不再存在。
于 2019-08-09T12:58:50.243 回答
0

请按照以下步骤操作。我也遇到过这个问题,通过以下方式解决:

  1. 将您的 react native cli 更新到最新版本。
  2. 如果使用 androidX,请使用 jetifier 和 npx。
  3. 更新您的包 JSON,其中开发依赖项如下所示

    “开发依赖”:{

        "@babel/core": "^7.4.3",
        "@babel/runtime": "^7.4.3",
        "babel-jest": "^24.7.1",
        "jest": "^24.7.1",
        "metro-react-native-babel-preset": "^0.53.1",
        "react-test-renderer": "16.8.3"
      },
    

步行即可启动地铁捆绑器。使用:npm start --reset cache这将启动你的地铁捆绑器。

于 2019-08-09T08:57:43.583 回答