React Native项目如何让Xcode外部包Debug模式编译全架构
解决方案
- 检查全链路的
Build Active Architecture Only配置
不仅要修改主项目的Debug模式配置为NO,还要同步修改Pods项目、HSLuvSwift依赖对应target的Debug模式配置为NO,仅配置主项目会被依赖包的继承配置覆盖导致不生效。 - 修正
Excluded Architectures配置层级
确保仅在Any iOS Simulator SDK层级配置排除arm64,不要将该配置写在顶层,避免真机构建场景也被错误排除非arm64架构。 - 用CocoaPods钩子强制配置统一
为了避免每次执行pod install后配置被重置,在Podfile末尾添加如下post_install钩子,强制所有target的Debug架构配置统一:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 强制Debug模式关闭仅构建当前架构 if config.name == 'Debug' config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' end # 统一模拟器排除arm64配置 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' # 强制使用标准架构集 config.build_settings['ARCHS'] = '$(ARCHS_STANDARD)' end end end
添加完成后重新执行pod install生效。
- 校验xcconfig配置
检查项目ios目录下的所有.xcconfig文件,确认没有额外的ONLY_ACTIVE_ARCH = YES的Debug模式配置覆盖Xcode设置,如有手动修改为NO。
配置完成后执行Shift+Cmd+K清理构建缓存,删除DerivedData目录后重新构建Debug模式即可生成全架构产物。
内容的提问来源于stack exchange,提问作者GusOst
相关产品推荐
相关产品推荐

