管理与公共cocoapod同名的私人cocoapod

时间:2014-09-26 15:07:36

标签: ios cocoapods podspec

我们有私人规格回购。我们的一个私有pod与另一个名为CWFoundation(s.dependency 'CWFoundation', '~> 0.0.1')的内部pod有依赖关系。 CWFoundation的podspec只是一种使用jayway(https://github.com/jayway/CWFoundation)的CWFoundation作为pod的方式(因为它不存在podspec文件)。

一切正常,直到其他人在github上创建了一个名为CWFoundation(https://github.com/guojiubo/CWFoundation)的新项目,并将其添加到cocoapods的公共回购中。

现在我们的内部pod在解析依赖项时,而不是从我们的私有规格仓库下载CWFoundation,从公共仓库下载一个没有用。

我在cocoapods.org看了

  

如果您计划分配已经属于Master Spec仓库的库,那么现在我们建议选择一个以M之前的字母开头的名称

但是我们遵循这条规则,该广告连续名为CWFoundation,并以' C'它没有用。

如何检索CWFoundation的私有podspec文件?

2 个答案:

答案 0 :(得分:3)

“M之前的一封信”的评论是指~/.cocoapods/repos中您的私人规格代表的名称。由于~/.cocoapods/repos/master是默认设置,因此需要~/.cocoapods/repos/alpha而不是~/.cocoapods/repos/zeta。只要这是真的,它应该使用它在主规格仓库中的那个之前找到的第一个规范。

修改

基于对我的回答的评论,这看起来像CocoaPods中的一个错误。请submit an issue。在此期间,只需重命名podspec即可解决问题。

答案 1 :(得分:2)

试试这个:

pod "NameConflictedPod", :source => MY_OWN_SPEC_REPOSITORY, :tag => '0.1'

这适合我。

MY_OWN_SPEC_REPOSITORY是私有规格回购的git网址。我们知道官方默认规格repo是https://github.com/CocoaPods/Specs.git

希望我好好描述MY_OWN_SPEC_REPOSITORY

警告:此解决方案指定pod的版本。它不能使用像'〜>这样的版本。 0.0.1'它会自动更新小错误修复版本。但是......由于豆荚是由你自己开发的,所以它并不是什么大不了的事:P