Objective-C框架新增Swift文件后经Git仓库构建报错求助
问题说明
已查阅Stack Overflow同类问题、苹果官方文档及相关技术资料,仍无法解决当前编译问题,在此先感谢各位提供的帮助。
已完成的配置操作
框架侧相关配置
- 项目为现有Objective-C框架,当前为框架新增Swift实现文件
- 框架场景下不使用桥接文件,依赖系统自动生成的
$(SWIFT_MODULE_NAME)-Swift.h文件,框架内引入该生成头文件统一使用<ProductName/ProductModuleName-Swift.h>格式 - 涉及交互的Swift类已设置为公开访问权限,同时测试添加过
@objc修饰 - 涉及交互的Swift方法已添加
@objc修饰,同时测试将方法设置为公开访问权限 - 框架的公开头文件已将Identity属性配置为公开
业务使用侧相关配置
- 所有需要调用Swift代码的Objective-C实现(.m)文件,均已引入上述Swift生成头文件
- 涉及Swift类的使用场景,已在对应Objective-C类中做前置声明
- 项目构建配置中
Defines Module选项已设置为YES - 项目构建配置中
Embed Swift Standard Libraries选项已设置为YES
当前编译异常表现
- 编译阶段针对Swift类抛出报错:
框架的header.h未在伞头文件(umbrella header)中找到 - 补充观察:
ProductModuleName-Swift.h文件在Objective-C头文件中可被正常识别,但在实现文件中无法被识别,不过当前仍可在Objective-C类中正常调用Swift类的方法
异常触发规律
- 报错仅在基于Git仓库拉取代码构建框架时出现,使用本地直接拷贝的未关联Git的代码构建框架时,可正常编译
- 初步排查判断:Git本身逻辑不会直接导致此类编译问题,目前仍在定位根因
内容的提问来源于stack exchange,提问作者Sonam Sodani
相关产品推荐
相关产品推荐

