Xcode Archives分发应用时ipatool报错code=1067 找不到FBLazyIterator.h
错误原因
该报错为集成React Native的iOS项目常见打包异常,根因是Xcode在执行应用分发瘦身流程时,尝试读取Pods依赖库的私有头文件,但归档产物中不存在对应路径的文件,导致ipatool执行终止。
可行解决方案
方案1:手动修改Pods依赖头文件权限
- 打开Xcode项目,在左侧导航栏选中
Pods根项目 - 在Targets列表中找到报错对应的
FBLazyVector库,切换到「Build Phases」标签 - 展开
Headers分组,将Public、Private分组下的所有头文件,全部拖拽到Project分组中 - 所有React Native相关依赖(如RCT开头的库、Yoga、其他FB开头的库)都执行上述操作
- 执行
Command + Shift + Option + K深度清理Xcode缓存,重新归档即可
- 打开Xcode项目,在左侧导航栏选中
方案2:Podfile添加钩子自动修正(推荐,避免每次pod install后重复修改)
在项目根目录的Podfile末尾添加如下配置:post_install do |installer| installer.pods_project.targets.each do |target| # 匹配所有React Native相关依赖库 if target.name.start_with?('FB', 'RCT') || target.name == 'Yoga' target.build_phases.each do |phase| next unless phase.is_a? Xcodeproj::Project::Object::PBXHeadersBuildPhase phase.files.each do |file| # 将所有头文件的访问权限设为Project,不暴露到打包路径 file.settings = { 'ATTRIBUTES' => ['Project'] } end end end end end保存后执行
pod install,重新构建归档即可。方案3:临时跳过瘦身流程(仅本地测试用,不推荐正式发布使用)
归档完成后进入分发流程时,在「App Thinning」选项页选择「None」,同时取消勾选「Rebuild from bitcode」,即可跳过触发报错的瘦身校验流程。
内容的提问来源于stack exchange,提问作者ladrianbo
相关产品推荐
相关产品推荐

