使用Fastlane部署React Native应用到TestFlight报YogaKit.modulemap未找到错误
解决方案
按以下步骤依次排查即可解决:
统一包管理工具执行前缀
所有fastlane相关操作前必须添加bundle exec前缀,确保调用的是项目Gemfile中锁定的cocoapods、fastlane版本,避免全局版本冲突,执行示例:bundle exec fastlane 你的lane名称统一Pods项目构建设置
在iOS目录下的Podfile末尾添加post_install钩子,自动对齐所有依赖库的构建配置,避免配置不一致问题:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 此处版本需和你主项目的最低iOS部署版本保持一致 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' # 排除模拟器arm64架构,适配M1芯片设备构建 config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" # 开启库分发构建配置,解决modulemap文件找不到问题 config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' end end end
修改完成后执行cd ios && pod install重新生成Pods配置。
确认Scheme共享配置
打开项目的.xcworkspace,点击顶部Scheme选择栏 -> Manage Schemes,找到打包使用的AwesomeProject scheme,勾选右侧的Shared选项后保存。补充gym构建设置参数
修改Fastfile中的gym配置,添加xcargs参数强制对齐构建设置:
gym( workspace: "AwesomeProject.xcworkspace", configuration: "Release", scheme: "AwesomeProject", export_method: "app-store", output_directory: output_directory, output_name: file_name, clean: true, include_bitcode: true, # 新增如下配置 xcargs: "EXCLUDED_ARCHS=arm64 BUILD_LIBRARY_FOR_DISTRIBUTION=YES" )
- 清理缓存重新构建
依次执行以下命令清理旧缓存后重试打包:
rm -rf ~/Library/Developer/Xcode/DerivedData/* cd ios pod deintegrate pod cache clean --all pod install --repo-update cd .. bundle exec fastlane 你的lane名称
内容的提问来源于stack exchange,提问作者Amir-Mousavi
相关产品推荐
相关产品推荐

