Xcode 12构建React Native发布包报错:构建输入文件无法找到
解决iOS归档构建文件缺失错误与架构警告问题
你的归档构建错误和那个架构警告绝对是关联的!本质问题出在架构配置的矛盾上:你把EXCLUDED_ARCHS设为排除arm64,但ARCHS又只指定了arm64,这就导致Xcode找不到任何有效的架构来编译真机版本,最终生成的.app包里缺少核心可执行文件,自然会报找不到指定路径的错误。之前你解决模拟器构建问题时,应该是给模拟器配置了排除arm64,但没区分真机和模拟器的配置,才会延续到归档流程里出问题。
下面是具体的修复步骤:
统一架构配置,区分真机/模拟器
打开Xcode项目设置(注意是Project级别,不是单个Target),切换到Build Settings标签:- 搜索
ARCHS,把值修改为$(ARCHS_STANDARD)——这个变量会自动适配Xcode当前支持的标准真机架构(比如arm64、arm64e),不用手动指定单个架构。 - 搜索
EXCLUDED_ARCHS,点击这个选项旁边的小箭头展开,分别配置模拟器和真机:- 针对模拟器(Debug/Release - Any iOS Simulator SDK):保留
arm64在排除列表里,这能解决你之前遇到的模拟器架构冲突问题。 - 针对真机(Debug/Release - Any iOS SDK):完全清空这个选项的值,确保没有排除
arm64——因为现在的iOS真机全是arm64架构,排除它的话根本编译不出可执行文件。
- 针对模拟器(Debug/Release - Any iOS Simulator SDK):保留
- 搜索
彻底清理构建缓存
之前的DerivedData里可能残留了错误的构建产物,必须清理干净:- 用Xcode快捷键
Cmd+Shift+K执行Clean Build Folder(或者通过顶部菜单Product > Clean Build Folder)。 - 手动删除整个DerivedData文件夹:打开终端,输入
rm -rf ~/Library/Developer/Xcode/DerivedData回车即可,也可以直接找到你项目对应的DerivedData目录删除。
- 用Xcode快捷键
重新执行归档
完成上面两步后,再点击Product > Archive,应该就能顺利完成归档,不会再出现文件缺失的错误了。
补充一句:之前的模拟器修复方案只适用于模拟器场景,真机和模拟器的架构需求是相反的,一定要分开配置,不然就会出现这种顾此失彼的问题。
内容的提问来源于stack exchange,提问作者Craig1123
相关产品推荐
相关产品推荐

