使用Fastlane+Xcode14部署React Native应用至Testflight失败求助
修复React Native 0.67 + Xcode14构建时Yoga模块pcm错误问题
问题场景
使用React Native 0.67、Xcode14、Fastlane2.211,通过Jenkins将测试版本部署至Testflight时,出现以下错误:
fatal error: module 'yoga' in AST file '**.pcm' (imported by AST file '/**.pch') is not defined in any loaded module map file; maybe you need to load Yoga.modulemap'?
解决方案
1. 彻底清理构建缓存与产物
在Jenkins构建脚本开头加入清理步骤,避免旧缓存干扰:
# 清理Xcode构建产物 xcodebuild clean -workspace YourApp.xcworkspace -scheme YourScheme # 删除Xcode DerivedData rm -rf ~/Library/Developer/Xcode/DerivedData # 清理React Native缓存 npx react-native clean # 重新安装Pods cd ios && pod deintegrate && pod install --repo-update
2. 确认Yoga模块文件存在
进入iOS项目的Pods/Yoga目录,检查是否存在Yoga.modulemap文件。如果缺失,执行pod install --repo-update重新拉取依赖,确保Podfile.lock中Yoga的版本与RN 0.67匹配(RN 0.67对应的Yoga版本通常为0.67.x)。
3. 调整Xcode编译配置
打开项目的Xcode工程,修改以下Build Settings:
- Enable Modules (C and Objective-C):设置为
YES - Header Search Paths:添加
$(SRCROOT)/Pods/Yoga(可根据实际项目结构调整路径) - Build Active Architecture Only:Debug和Release都设为
NO(避免架构不匹配导致模块加载失败)
4. 优化Fastlane构建配置
在Fastfile的gym动作中,确保开启构建前清理,并指定正确的工作空间和Scheme:
gym( scheme: "YourSchemeName", workspace: "YourApp.xcworkspace", clean: true, # 关键:每次构建前清理旧产物 export_method: "app-store", build_path: "./build" )
5. 修正预编译头文件导入方式
检查项目的.pch文件,如果存在@import yoga;,尝试替换为#import <Yoga/Yoga.h>,避免模块导入路径错误。
内容的提问来源于stack exchange,提问作者ZHSX
相关产品推荐
相关产品推荐

