首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有cocoapod依赖的静态库:在Podspec s.dependency中定义,在Podfile中定义,还是两者都定义?

带有cocoapod依赖的静态库:在Podspec s.dependency中定义,在Podfile中定义,还是两者都定义?
EN

Stack Overflow用户
提问于 2015-06-04 04:02:32
回答 1查看 487关注 0票数 3

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

在我的静态库的Podspec中,我指出了HockeySDK依赖关系,如下所示:

代码语言:javascript
复制
 # MyStaticLib requires the latest HockeySDK framework:
 s.dependency "HockeySDK", "3.6.4"

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

代码语言:javascript
复制
target "MyStaticLib" do
   pod "HockeySDK", "3.6.4"

这似乎工作得很好-如果我在MyApp的Podfile中引用MyStaticLib,它会拉入MyStaticLib,也会神奇地拉入HockeySDK依赖项,世界上一切都很好。

这两种用于指示HockeySDK依赖关系的看似多余的机制之间有什么不同?为什么我要使用一个,或者不使用另一个,或者两者都使用?

EN

回答 1

Stack Overflow用户

发布于 2017-12-01 07:00:45

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

第二种情况是您的目标依赖于HockeySDK进行构建。

区别是相当微妙的,但如果你不是静态链接的话就更明显了。由于您是静态链接,因此编译时和运行时依赖项是相同的(意味着第二个场景与第一个场景相同)。

如果您是针对HockeySDK动态链接的,则需要让宿主应用程序意识到这一点,以便它可以在链接库时提供依赖库。这样做的方法是通过podspec传播依赖项。

在podfile中,声明1.目标和2.为了编译目标,您需要来自HockeySDK的目标文件和头文件。这只会影响您自己的库的构建。使用您的库的用户使用等级库,而不是Podfile。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30629587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档