【问题标题】:Managing a private cocoapod with the same name of a public cocoapod管理与公共 cocoapod 同名的私有 cocoapod
【发布时间】:2014-11-21 15:37:24
【问题描述】:

我们有一个私人规范回购。我们的一个私有 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 文件?

【问题讨论】:

    标签: ios cocoapods podspec


    【解决方案1】:

    “M 之前的字母”的评论指的是您在 ~/.cocoapods/repos 中的私有规范 repo 的名称。由于~/.cocoapods/repos/master 是默认值,因此您需要~/.cocoapods/repos/alpha 而不是~/.cocoapods/repos/zeta。只要这是真的,它就应该使用它找到的第一个规范,在主规范存储库中的那个之前是你的。

    编辑

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

    【讨论】:

    • 我们的私有规范存储库称为 GG-CocoaPods-Specs。所以,它应该有效,对吧?
    • 我们的私有规范 repo 在 ~/.cocoapods/repos 中称为 GG-CocoaPods-Specs。我已经尝试将 repo 名称更改为 gg-CocoaPods-Specs,以防万一小写/大写很重要,但我得到了相同的结果。我做了 pod install ,但我仍然得到 CWFoundation (0.0.4),不正确的...
    • 文件夹结构的其余部分是什么样的?
    • 你想看~/.cocoapods/repos的整体结构,GG-CocoaPods-Specs的结构还是master的结构?还是全部?谢谢基思!
    • 你的私有规范仓库的结构。
    【解决方案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

    【讨论】:

      猜你喜欢
      • 2022-10-14
      • 2019-02-19
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多