【发布时间】:2015-06-01 12:25:24
【问题描述】:
尝试构建一个依赖于我拥有的其他已发布 Cocoapod 库的 Cocoapod 库,在 XCode 中构建了项目,但运行 pod lib lint 命令检查 pod 有效性失败
error: include of non-modular header inside framework module 在我所依赖的库(pod)的头文件中。所有源代码都是 Obj-C 而不是 Swift。
根据here找到的建议,我确实尝试了以下方法
- 将依赖库的头文件设置为
public而不是project - 为每个目标设置
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES - 验证构建阶段的相关标头是否位于
public下。
但问题仍然存在,我无法发布 pod 也无法对其进行测试。
更新
当我注释掉
s.dependency 'OldPodIDependOn'
我的新 pod 的 podspec 文件中的行,然后错误消失,但未找到依赖的标头。如果我没有在./Example 文件夹下的Podfile 中包含我所依赖的pod,如下所示:
target 'NewPod', :exclusive => true do
pod "NewPod", :path => "../"
pod "OldPodIDependOn", :path => "../../OldPodIDependOn/"
end
那么项目将不会在 XCode 中构建,因为 OldPodIDependOn 文件不是项目的一部分。遇到了一些先有鸡还是先有蛋的问题。
更新 2
还尝试删除 :path => "../../OldPodIDependOn/" 组件以引用已发布的 pod 而不是本地的 - 没有帮助。
值得一提的是,这个 pod 将包含一个 UI,因此将包含和引用一个故事板,我在 podspec 文件中添加了 s.resources = 'Pod/Classes/UI/NewPod.storyboard' 行,并从 pod 目标编译源中删除了故事板(否则 xcode 将不会吨建立)。我认为这与问题无关,但值得一提,也许我在那里做错了什么。
我做错了什么? 任何帮助将不胜感激!
【问题讨论】:
标签: ios objective-c xcode cocoapods