gpt4 book ai didi

ios - 具有 cocoapod 依赖项 : define in Podspec s. 依赖项的静态库,在 Podfile 中,还是两者都有?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:09 24 4
gpt4 key购买 nike

我正在将我们内部使用的静态库转换为 CocoaPod,以便我们的主机应用程序可以通过在其 Podfile 中引用它来简单地将其引入。这个静态库又依赖于名为 HockeySDK 的第三方 Pod。

在我的静态库的 Podspec 中,我指出 HockeySDK 依赖如下:

 # MyStaticLib requires the latest HockeySDK framework:
s.dependency "HockeySDK", "3.6.4"

我还在我的静态库根目录中的 Podfile 中指出了依赖关系:

target "MyStaticLib" do
pod "HockeySDK", "3.6.4"

这似乎工作正常 - 如果我在 MyApp 的 Podfile 中引用 MyStaticLib,它会引入 MyStaticLib 并神奇地引入 HockeySDK 依赖项,一切都很好。

这两个看似冗余的指示 HockeySDK 依赖性的机制有什么区别?为什么我要使用一个或不使用另一个或两者?

最佳答案

第一个场景用于指示您的库具有对 HockeySDK 的运行时(以及编译时,因为在 cocoapods 中基本上所有运行时的东西也是编译时)依赖。

第二种情况表示您的目标依赖于 HockeySDK 才能构建。

差异非常细微,但如果您不是静态链接,则差异会更加明显。由于您是静态链接,因此编译时和运行时依赖性是一回事(意味着第二种情况与第一种情况相同)。

如果您针对 HockeySDK 进行动态链接,则需要让主机应用程序知道这一点,以便它可以在链接您的库时提供依赖库。这样做的方法是通过 podspec 传播依赖关系。

在 podfile 中,您声明 1. 目标以及 2. 您需要目标文件以及来自 HockeySDK 的 header 才能编译目标。这只会影响您自己的库的构建。使用您的库的人使用规范而不是 Podfile。

关于ios - 具有 cocoapod 依赖项 : define in Podspec s. 依赖项的静态库,在 Podfile 中,还是两者都有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30629587/

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