gpt4 book ai didi

ios - 创建依赖于另一个 pod 的 pod

转载 作者:可可西里 更新时间:2023-11-01 03:48:55 26 4
gpt4 key购买 nike

尝试构建一个依赖于我拥有的其他已发布 Cocoapod 库的 Cocoapod 库,在 XCode 中获取项目以构建 OK,但是运行 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 =
    每个目标
  • 验证构建阶段的相关 header 是否在 public 下。

但问题仍然存在,我无法发布 pod 也无法对其进行测试。

更新当我注释掉s.dependency 'OldPodIDependOn' 我的新 pod 的 podspec 文件中的行然后错误消失但找不到依赖的 header 。如果我不在 ./Example 文件夹下的 Podfile 中包含我依赖的 pod,如下所示:

target 'NewPod', :exclusive => true do
pod "NewPod", :path => "../"
pod "OldPodIDependOn", :path => "../../OldPodIDependOn/"
end

然后项目将不会在 XCode 中构建,因为 OldPodIDependOn 文件不是项目的一部分。遇到了先有鸡还是先有蛋的问题。

更新 2还尝试删除 :path => "../../OldPodIDependOn/" 组件以引用已发布的 pod 而不是本地 pod - 没有帮助。

值得一提的是,这个 pod 将包含一个 UI,因此将包含并引用一个 Storyboard,我添加了 s.resources = 'Pod/Classes/UI/NewPod.storyboard' 行podspec 文件,并从 pod 目标编译源中删除 Storyboard(否则 xcode 将无法构建)。我认为这与问题无关,但值得一提的是,也许我在那里做错了什么。

我做错了什么?任何帮助将不胜感激!

最佳答案

为了最终解决这个问题,我不得不放弃 pob lib create 创建的工作区 - 没有办法解决它,我尝试了所有可能的组合/建议/代码修改以摆脱“框架内的非模块化 header ”错误,但似乎没有任何效果。 pod lib lint 总是失败。

我从头开始创建了自己的静态库xcode项目,然后在将依赖的pod添加到Podfile之后运行pod update,然后创建了一个. podspec 文件,并将依赖的 pod 头文件添加到静态 lib 目标的“复制文件”构建阶段 + libPods.a 文件到“Link Binary with libs”构建阶段。噗! pod lib lint 不再出现“非模块化 header ”错误,即使我实际上正在做完全相同的事情。吸取的教训是 pod lib create 不推荐用于所有 cocoapod 案例。

关于ios - 创建依赖于另一个 pod 的 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29313160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com