使用特定分支时如何满足cocoapod外部依赖

Posted

技术标签:

【中文标题】使用特定分支时如何满足cocoapod外部依赖【英文标题】:How to satisfy cocoapod external dependancy when using specific branch 【发布时间】:2017-06-27 17:28:24 【问题描述】:

在我的项目中,我同时使用了 Swinject 和 SwinjectAutoregistration pod。两者通常都被声明为“2.0.0”版本,如下所示: pod 'Swinject', '2.0.0' pod 'SwinjectAutoregistration', '2.0.0'

但是为了在 Xcode 9 的 beta 版本中构建我的项目,我需要采用 Swinject github 存储库的特定分支,as stated here。新声明如下所示:

pod 'Swinject', :git => 'https://github.com/Swinject/Swinject.git', :branch => 'swift4'

当我尝试pod update 时,出现依赖项错误。我相信 SwinjectAutoregistration 声明了对 Swinject 2.0 的依赖,所以我对同一个 pod 有不同的来源。

有没有办法告诉 cocoapods 这个特定的 pod 来源作用类似于 2.0 版本?

【问题讨论】:

【参考方案1】:

好吧,似乎将源指定为 github repo 而不是 cocoapod repo 用于这个特定的 pod 作品。

我在target 'MyGreatApp' do 行之前添加了这一行:

source 'https://github.com/Swinject/Swinject.git'

我必须指定这适用于这个特定的 pod,但可能不适用于其他情况。 Swinject 背后的优秀人员在他们的 github 存储库中的一个分支上修复了 Xcode(9,beta)错误,该分支不在 cocoapod 存储库中。

所以这个答案在这种情况下有效,但不幸的是,这可能不像我希望的那样通用。

【讨论】:

以上是关于使用特定分支时如何满足cocoapod外部依赖的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter iOS 平台特定代码中使用 Cocoapods 库

如何从特定分支安装 pod?

是否可以从分支构建 Pod 版本?

添加Android特定外部库

如何强制 JBoss 部署使用特定版本的依赖项而不是已安装的模块?

Flink 如何解析与传递参数