React Native 0.64.4项目在Xcode 15构建失败求助
解决方案:React Native 0.64.4 在 Xcode 15 + M1 Mac 上的构建修复
针对老版本RN项目在新环境下的构建问题,按以下步骤逐一排查修复:
1. 适配 Apple Silicon 模拟器架构
RN 0.64.4 默认未适配 M1/M2 芯片的 arm64 模拟器架构,需手动排除:
- 打开 iOS 项目的
Podfile,在post_install块中添加架构排除配置:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 仅在模拟器环境排除 arm64 架构 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end end - 执行
cd ios && pod install --repo-update重新安装依赖
2. 适配 Xcode 15 编译规则
Xcode 15 移除了部分旧链接器选项,同时调整了签名逻辑:
- 打开 Xcode 项目,进入 Target 的
Build Settings,找到Other Linker Flags,移除其中的-weak-lSystem选项(若存在) - 进入
Signing & Capabilities面板,确保Automatically manage signing已启用,且选择了正确的开发者团队;若手动签名,需确认签名文件与当前设备/打包配置匹配
3. 调整 iOS 部署目标版本
Xcode 15 最低支持 iOS 12,且过高的目标版本(如 iOS 17)可能触发老 API 兼容性问题,建议调整到 iOS 14:
- 在 Xcode 项目 Target 的
General面板,将Deployment Info中的 iOS 版本改为 14.0 - 修改
Podfile开头的平台配置:platform :ios, '14.0',然后重新执行pod install
4. 修复第三方依赖兼容性
部分老依赖可能不兼容 Xcode 15 或 Apple Silicon:
- 检查
package.json和Podfile.lock中的依赖,将核心库(如react-native-safe-area-context、react-native-screens)升级到兼容 RN 0.64.4 的最新版本 - 若使用 Flipper,RN 0.64.4 内置的 Flipper 版本与 Xcode 15 不兼容,可暂时禁用:注释掉
Podfile中所有 Flipper 相关代码,再执行pod install
5. 清理缓存后重新构建
执行以下命令彻底清理缓存,避免残留问题:
# 清理 Node 依赖 rm -rf node_modules package-lock.json npm install # 清理 iOS 依赖 cd ios rm -rf Pods Podfile.lock pod deintegrate pod install --repo-update cd .. # 清理 RN 缓存 npx react-native clean
在 Xcode 中按下 Cmd+Shift+K 清理 Build Folder,然后重新尝试构建模拟器或打包。
内容的提问来源于stack exchange,提问作者tech deed
相关产品推荐
相关产品推荐

