Mac M1+Xcode14打包React Native报错:Cannot read properties of undefined
React Native Archive打包报错:Cannot read properties of undefined (reading 'transformFile')(M1+Xcode14环境)
问题场景
Debug模式可正常运行,但执行Archive打包操作时触发如下错误:
PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/xeliumtech/Library/Developer/Xcode/DerivedData/MyProject-dnhytywafolqjdfyogwnjlgwovis/Build/Intermediates.noindex/ArchiveIntermediates/MyProject/IntermediateBuildFilesPath/MyProject.build/Release-iphoneos/MyProject.build/Script-00DD1BFF1BD5951E006B06BC.sh (in target 'MyProject' from project 'MyProject') error Cannot read properties of undefined (reading 'transformFile'). TypeError: Cannot read properties of undefined (reading 'transformFile') at /Users/xeliumtech/Documents/Project/Vouch/node_modules/metro/src/Bundler.js:95:34 at Generator.next (<anonymous>) at asyncGeneratorStep (/Users/xeliumtech/Documents/Project/Vouch/node_modules/metro/src/Bundler.js:14:24) at _next (/Users/xeliumtech/Documents/Project/Vouch/node_modules/metro/src/Bundler.js:36:9) info Run CLI with --verbose flag for more details. Command PhaseScriptExecution failed with a nonzero exit code
已尝试Node降级至14.18.1、删除node_modules/Pod/锁文件重装,问题仍未解决。
解决方案
用Rosetta运行Xcode
右键Xcode图标→「显示简介」,勾选「使用Rosetta打开」,重启Xcode后重新Archive。M1芯片的架构兼容性是这类问题的常见诱因。指定Bundle脚本的Node路径
打开Xcode项目target的「Build Phases」,找到「Bundle React Native code and images」脚本,在开头添加Node路径配置:# 系统默认Node路径,或替换为nvm管理的路径 export NODE_BINARY=/usr/local/bin/node # 示例nvm路径:export NODE_BINARY=~/.nvm/versions/node/v14.18.1/bin/nodeXcode的Release环境常因找不到正确Node路径导致打包失败。
升级Metro相关依赖
该报错多与Metro版本不兼容有关,修改package.json中的metro、metro-react-native-babel-preset版本为对应RN版本的最新兼容版,执行npm install/yarn install后,清理缓存:npx react-native start --reset-cache检查Babel配置
确保babel.config.js预设配置正确,无缺失:module.exports = { presets: ['module:metro-react-native-babel-preset'], };清理Xcode缓存
删除Xcode派生数据后重试:rm -rf ~/Library/Developer/Xcode/DerivedData
内容的提问来源于stack exchange,提问作者Harsh Bhatnagar
相关产品推荐
相关产品推荐

