Mac M1设备React Native v0.68.0出现No bundle URL present错误求助
解决React Native 0.68在M1 Pro Mac上iOS端"No bundle URL present"的问题
以下是针对该问题的实用解决方案:
1. 检查并修复Xcode的Build Phases配置
- 打开iOS项目的Xcode工程,选中主target,切换到Build Phases标签页
- 确认是否存在
Bundle React Native code and images脚本阶段。如果没有,点击左上角+号选择New Run Script Phase,添加以下脚本内容:export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.sh - 拖拽该Run Script阶段到
Copy Bundle Resources阶段上方,确保脚本先执行,才能生成bundle文件并复制到资源目录
2. 适配M1芯片的架构设置
M1 Pro的arm64架构可能导致RN打包脚本异常,可通过以下方式处理:
- 在Xcode的Build Settings中,找到
Excluded Architectures,在Debug模式下添加arm64(仅针对模拟器,Release模式保持默认即可) - 或者修改项目根目录的
Podfile,添加以下配置后执行cd ios && pod install:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end end
3. 配置自动打包脚本(替代手动生成)
如果暂时无法让Xcode自动生成bundle,可以在package.json中添加一键打包脚本,避免手动重复操作:
"scripts": { "bundle-ios": "react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assets" }
更新代码后执行npm run bundle-ios即可自动生成最新的main.jsbundle
4. 清理缓存解决异常
缓存问题也可能导致bundle生成失败,执行以下命令彻底清理:
# 清理node_modules和依赖 rm -rf node_modules && npm install # 清理iOS Pod依赖 cd ios && pod deintegrate && pod install && cd .. # 清理RN缓存 npx react-native clean # 清理Xcode缓存(Xcode中执行快捷键:Cmd+Shift+K)
内容的提问来源于stack exchange,提问作者Divyang Solanki
相关产品推荐
相关产品推荐

