原生iOS集成Unity库后使用AppStore配置文件归档报UnityFramework头文件找不到错误
排查方案
- 优先对比Ad-Hoc与AppStore配置的Framework搜索路径差异
进入项目主target与UnityFramework target的Build Settings,搜索Framework Search Paths,检查AppStore配置下是否缺失UnityFramework所在目录的路径引用,确认路径添加了recursive递归属性,若路径包含空格或特殊字符需用英文双引号包裹。同时同步核对User Header Search Paths配置是否和可正常归档的Ad-Hoc配置完全一致。 - 检查UnityFramework头文件的公开属性
打开UnityFramework target的Build Phases > Headers面板,确认UnityFramework.h、NativeCallProxy.h均被归类到Public分组下,避免AppStore构建时头文件未被导出到公开目录。 - 修正桥接头引用逻辑或绕过桥接头
你可以先尝试将桥接头内的引用改为直接引入:
更推荐的方案是完全移除桥接头内的Unity相关引用,在需要调用Unity能力的Swift文件顶部直接添加#import "UnityFramework.h" #import "NativeCallProxy.h"import UnityFramework即可,只要UnityFramework被正确加入主项目的依赖框架列表,Swift可直接识别模块,完全规避预编译头报错问题。 - 核对全架构编译配置
AppStore归档默认会编译全架构,和Ad-Hoc仅编译当前设备架构的逻辑不同,需确认UnityFramework的Build Settings > Build Active Architecture Only在所有配置下的取值和主项目一致,同时确认Unity导出iOS工程时已勾选arm64作为目标架构,不存在缺失架构的问题。 - 手动指定预编译头的搜索路径
进入主项目Build Settings > Other C Flags、Other Swift Flags,在AppStore配置下手动添加UnityFramework头文件所在目录的绝对/相对路径,格式为-I "你的UnityFramework头文件目录路径",强制编译器识别头文件位置。
内容的提问来源于stack exchange,提问作者abeauchamp
相关产品推荐
相关产品推荐

