You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode12编译私有CocoaPods框架报Include of non-modular header错误如何解决

可行解决方案如下:

  • 同时给Pod自身目标加编译配置
    你之前只配置了user_target_xcconfig,该配置仅对集成APod的上层主工程生效,APod自身编译阶段不会生效,需要在APod的podspec中新增Pod目标的配置:
s.pod_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

配置完成后执行pod deintegrate && pod install重新集成即可。

  • 补全依赖声明
    如果ComponentKit是BPod的依赖,你需要在APod的podspec中显式声明ComponentKit为依赖,哪怕是间接依赖也需要显式声明,CocoaPods会自动处理头文件的模块映射关系:
s.dependency 'ComponentKit'

同时检查BPod的podspec是否已经将ComponentKit声明为公开依赖,且BPod自身也开启了上述clang配置项。

  • 头文件使用前置声明替代导入
    如果WWLocationVC.h中仅用到ComponentKit的类引用,不需要调用其方法、访问属性,可以用@class前置声明代替头文件导入,把实际的#import语句保留在.m文件中,既不需要修改现有代码结构,也能避免非模块化头文件导入报错。

  • 为ComponentKit手动配置modulemap
    如果ComponentKit本身没有提供模块化声明,你可以在BPod中新增自定义modulemap文件,将ComponentKit的公开头文件纳入模块声明,之后在BPod的podspec中指定modulemap路径即可:

s.module_map = '路径/你的自定义modulemap文件名.modulemap'

内容的提问来源于stack exchange,提问作者jiaoxiaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:45:03