React Native iOS多构建方式报错求助(Xcode/CLI/run-ios)
React Native iOS 多构建方式失败排查方案
环境版本
node -v: v22.12.0 npm -v: 10.9.0 pod --version: 1.16.2 xcodebuild -version: Xcode 16.2 Build version 16C5032a
构建错误详情
1. Xcode GUI 构建错误
清理后构建触发Sandbox权限拒绝,无法读写hermes.framework相关文件,rsync返回错误码23。
2. xcodebuild CLI 构建错误
执行清理构建命令后,多个ReactCodegen编译任务失败,同时出现脚本阶段无输出警告。
3. npx react-native run-ios --verbose 错误
抛出non-modular-include-in-framework-module错误,伴随Sandbox权限拒绝,xcodebuild返回错误码65。
已尝试方案
- 启用新架构:执行
RCT_NEW_ARCH_ENABLED=1 pod install - 确认项目路径无空格、特殊字符
- 移除项目目录扩展属性:
xattr -cr <项目路径> - 禁用Hermes脚本阶段的「基于依赖分析」选项
- 删除
.xcode.env.local并重新生成Pods
针对性解决方案
针对Sandbox权限/rsync错误(Xcode GUI、run-ios)
- 检查Xcode派生数据路径
打开Xcode偏好设置 → 位置,确认「派生数据」路径无特殊字符;若路径异常,点击「高级」选择「自定义」,设置到短路径(如~/XcodeDerivedData)。 - 修复Hermes框架权限
- 手动删除
ios/Pods/Hermes-engine目录,重新执行pod install - 在终端执行命令修正框架权限:
chmod -R 755 ios/Pods/Hermes-engine/destroot/Library/Frameworks/hermes.framework
- 手动删除
- 临时调整沙箱权限
进入项目target的「签名与功能」,若项目无需沙箱,可临时关闭「App Sandbox」选项;若需要则确保文件读写相关权限已开启。
针对ReactCodegen编译失败(xcodebuild CLI)
- 彻底清理缓存并重建依赖
执行以下命令清理后重新安装:rm -rf node_modules ios/Pods ios/build npm install cd ios && pod deintegrate && pod install && cd .. - 手动触发Codegen生成
执行命令强制生成Codegen文件:npx react-native codegen ios - 兼容旧构建系统
使用xcodebuild时添加参数切换到旧构建系统:xcodebuild clean build -workspace YourApp.xcworkspace -scheme YourApp -configuration Debug -sdk iphonesimulator -UseModernBuildSystem=NO
针对non-modular-include-in-framework-module错误(run-ios)
- 修改框架导入方式
定位到报错文件,将#include "xxx.h"改为#import <ModuleName/xxx.h>(替换为对应第三方库的模块名)。 - 开启非模块化导入允许
打开项目target的「Build Settings」,搜索「Allow Non-modular Includes In Framework Modules」,设置为YES。 - 强制第三方库模块化
在Podfile中给报错的第三方库添加模块化配置:pod 'ProblematicPod', :modular_headers => true
通用验证步骤
- 重启Xcode和终端,确保无残留进程
- 确认Xcode命令行工具版本与GUI一致:执行
xcode-select -p,若路径不符则执行sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer - 先通过
npx react-native run-ios测试构建,再切换到Xcode GUI验证
内容的提问来源于stack exchange,提问作者Nicolas Saade
相关产品推荐
相关产品推荐

