【问题标题】:Resolve dependency in cocoapods, when library doesn't have a podspec published当库没有发布 podspec 时,解决 cocoapods 中的依赖关系
【发布时间】:2014-07-19 23:12:15
【问题描述】:

我有一个 podspec,它依赖于另一个库。该库没有发布规范。

在这种情况下,解决依赖关系的最佳方法是什么? “dependency”关键字只允许引用其他规范,但不能引用外部的 repo(例如通过 repo + SHA-1)

自己为库发布规范?或者我可以创建一个本地 podspec 并使用 repo 提交并以某种方式引用它吗?

【问题讨论】:

    标签: ios cocoapods podspec


    【解决方案1】:

    您最好为其他库创建规范,并将该规范作为依赖项包含在您的库中。另一种选择是将库与您的库捆绑并在本地引用规范中的文件。不建议这样做。

    【讨论】:

    • 所以你建议发布一个公共 podspec 并推送 Cocoapods/Specs?如果库维护者有一天决定要自己发布规范,会发生什么?那会产生重复吗?此外,我宁愿没有其他人依赖的另一个 podspec,我必须维护(只想在“内部”引用它)。有没有办法做“auto git submodule init & update on pod update”?然后我可以回退到使用 git 子模块来处理这些依赖项。
    • 您可以退回到子模块。如果最初的维护者想要接管它,他们可以通过中继被授予访问权限。您还可以使用此规范创建一个私有规范存储库,仅供您内部使用。
    • 嗨 Keith,非常感谢您的帮助,非常感谢!澄清一下,回到 git 子模块意味着将其添加到说明中,对吗?诸如“将 pod 添加到您的 Podfile,在 pod 更新后,调用 git submodule init ...”之类的东西,或者有没有办法让它自动化,以便“pod update”也可以为用户执行“git submodule init”?
    • 关于“私有 podspec”,有没有办法将其作为主要 podspec 中的依赖项进行引用?还是用户必须先添加自定义 Specs 存储库(“pod repo add”)。
    • 您实际上可以将源设置为自动下载子模块。文档here。这样用户就不必处理或知道如何处理。您不想公开发布依赖于私有依赖项的规范。该规范不会通过pod spec lint,它对除您以外的任何人都不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多