在将我的React Native应用更新到最新版本(0.60.4
)之后,使用react-native run-ios
启动我的应用将导致我的应用在没有Metro Bundler的情况下启动。
为了使我的应用程序正常运行,我需要使用npm start
启动Metro Bundler,然后运行react-native run-ios
。
尽管这是一种解决方法,但以前我没有这个问题,只需运行react-native run-ios
即可自动启动Metro Bundler。我该如何解决?
编辑:我来自NSAppTransportSecurity
的{{1}}:
Info.plist
答案 0 :(得分:4)
我认为在将现有项目升级到React Native v0.60.+
时,这个问题很常见。
对于在Mac上遇到此问题的任何人:
Xcode
,然后在您的项目下找到Build Phases
。 Editor
-> Add Build Phase
-> Add Run Script Build Phase
。
Run Script
标签底部的新生成的Build Phases
。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
Xcode
启动您的项目。 Metro Bundler
现在应该会自动开始。 react-native run-ios
时,Metro Bundler
将自动开始,并且No bundle URL present
错误将不再持续。答案 1 :(得分:0)
请按照以下步骤操作。我也遇到了这个问题,此问题已通过以下方法解决:
更新其中具有开发依赖关系的JSON包
“ devDependencies”:{
"@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"
},
四处走动以启动Metro Bundle。
使用:npm start --reset cache
这将启动您的Metro Bundle。