React Native从0.73.7升级到0.76.9后iOS编译失败:无法构建UIKit/DarwinFoundation模块
React Native从0.73.7升级到0.76.9后iOS编译失败:无法构建UIKit/DarwinFoundation模块
这种系统级框架的编译报错确实头疼,尤其是回滚旧版本就正常,说明问题肯定和升级后RN或Xcode的配置差异有关。结合你已经做的尝试,我整理了几个更深入的排查方向和实操步骤,你可以逐一试试:
1. 检查Xcode项目的Base SDK和Deployment Target是否完全同步
你已经在Podfile里设置了platform :ios, '15.1',但Xcode项目本身的配置可能没跟上:
- 打开Xcode,选中项目根目标(别选Pods或者子测试目标),进入「Build Settings」标签
- 搜索「Base SDK」,确认设置为iOS(不要选Simulator SDK或者其他自定义SDK)
- 搜索「iOS Deployment Target」,确保和Podfile里的
15.1完全一致,同时检查所有子目标(比如Tests、UITests)的Deployment Target也同步改成15.1 - 另外,检查「Valid Architectures」(如果有的话),确保只保留
arm64(M系列芯片)和x86_64(模拟器),不要有多余的架构
2. 修复CocoaPods的框架搜索路径继承
升级RN可能会意外修改项目的搜索路径,导致系统框架找不到:
- 在项目的Build Settings里搜索「Framework Search Paths」
- 确保列表最顶部有
$(inherited)这个值,它会自动继承CocoaPods的正确配置 - 如果有手动添加的绝对路径,暂时注释掉(在路径前加
#),避免干扰系统框架的查找 - 同样检查「Header Search Paths」,确保
$(inherited)存在且没有错误的自定义路径
3. 完全清理CocoaPods缓存与项目残留
你已经删了Pods文件夹,但CocoaPods的全局缓存可能还有旧版本的残留:
- 先执行
pod cache clean --all清空所有Pods的全局缓存 - 然后进入ios目录,执行
RCT_NEW_ARCH_ENABLED=0 pod install --repo-update重新安装 - 注意必须打开
ios/[你的项目名].xcworkspace(而不是xcodeproj)来编译,xcodeproj不会加载Pods的配置
4. 排查Xcode 16.4的兼容性问题
RN 0.76.9发布时Xcode 16.4可能还比较新,存在适配缺口:
- 尝试切换到旧一点的模拟器,比如iOS 17.4(必须≥你的Deployment Target 15.1),有时候最新模拟器的系统框架有临时bug
- 打开Xcode的「Settings」→「Locations」,确认Derived Data的路径没有特殊字符,然后手动删除整个文件夹:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重启Xcode和Mac,M系列芯片的Xcode有时候会因为缓存卡住,重启后能解决很多玄学问题
5. 检查M系列芯片的Rosetta模式
虽然你用的是M2 Pro,但部分旧依赖可能需要Rosetta兼容:
- 打开Finder,找到Xcode.app→右键→「显示简介」,勾选「使用Rosetta打开」,重启Xcode后再编译
- 也可以用Rosetta模式重新安装Pods:
arch -x86_64 pod install,然后再尝试编译
最后一招:对比旧版本的项目配置
如果以上都没用,直接对比旧版本(0.73.7)的Xcode项目配置:
- 找到旧提交里的
ios/[项目名].xcodeproj/project.pbxproj文件,和当前版本的用Xcode的「Compare Files」功能对比 - 重点看Build Settings里的Base SDK、Deployment Target、Framework/Header Search Paths、Other C Flags这些字段,升级RN时自动修改的配置里大概率藏着问题
我之前帮朋友排查过类似的RN升级编译问题,大部分都是Xcode的SDK配置没同步或者CocoaPods缓存残留导致的,你可以按顺序试试这些方法,应该能解决!




