升级Xcode 15后React Native项目IPA打包失败,模拟器运行正常
Xcode 15升级后React Native打包IPA失败的解决办法
问题根源
Node.js 17及以上版本默认启用了OpenSSL 3.0,禁用了React Native打包脚本依赖的MD4哈希算法,直接导致打包时抛出digital envelope routines::unsupported错误,最终触发PhaseScriptExecution失败。模拟器运行正常是因为调试模式下的打包逻辑和Archive打包逻辑不同。
具体解决方法
方法1:修改Xcode打包脚本(推荐)
- 打开Xcode,选中你的React Native项目target
- 切换到
Build Phases标签,找到Bundle React Native code and images脚本 - 替换脚本内容为:
export NODE_OPTIONS="--openssl-legacy-provider" export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.sh
- 重新执行Archive操作生成IPA
方法2:临时设置环境变量启动Xcode
在终端执行以下命令后再打开Xcode,这个配置仅对当前会话生效:
export NODE_OPTIONS="--openssl-legacy-provider" open -a Xcode.app
方法3:降级Node.js版本(备选)
如果前两种方法不适用,可将Node.js降级到16.x LTS版本(该版本默认用OpenSSL 1.1.1,无算法兼容问题),用nvm切换的命令如下:
nvm install 16 nvm use 16
内容的提问来源于stack exchange,提问作者Sakthivel
相关产品推荐
相关产品推荐

