3

我们有一个私人规范回购。我们的一个私有 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 的公共 repo 中。

现在我们的内部 pod,当解决依赖关系时,不是从我们的私有规范 repo 下载 CWFoundation,而是从公共 repo 下载一个,但没有任何效果。

我在 cocoapods.org 上读到

如果您打算分叉一个已经是 Master Spec 存储库一部分的库,现在我们建议选择一个以 M 之前的字母开头的名称

但是我们遵循这条规则,pod 被称为 CWFoundation 并以“C”开头,但它不起作用。

我该怎么做才能为 CWFoundation 检索我们的私有 podspec 文件?

4

2 回答 2

3

'a letter before M' 的评论指的是您在~/.cocoapods/repos. 因为~/.cocoapods/repos/master是默认值,所以你想要类似的东西~/.cocoapods/repos/alpha,而不是~/.cocoapods/repos/zeta. 只要这是真的,它就应该使用它找到的第一个规范,这将是您在主规范存储库中的那个之前的规范。

编辑

根据对我的回答的评论,这看起来像是 CocoaPods 中的一个错误。请提交问题。同时,只需重命名您的 podspec 即可解决此问题。

于 2014-09-26T16:16:27.443 回答
2

尝试这个:

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

这对我行得通。

MY_OWN_SPEC_REPOSITORY是您的私有规范存储库的 git URL。正如我们所知,官方默认规格 repo 是https://github.com/CocoaPods/Specs.git.

希望我描述MY_OWN_SPEC_REPOSITORY得很好。

警告:此解决方案指定 pod 的版本。它不能使用像'~> 0.0.1'这样自动更新小错误修复版本的版本。但是...这没什么大不了的,因为 pod 是您自己开发的:P

于 2018-02-07T08:08:19.413 回答