尝试访问私有依赖项时,开发中的私有 cocoapod 无法检查

Private cocoapod in development fails to lint when attempting to access private dependency

快速介绍一下,所有涉及的可可pods都保存在私有存储库中。

一些一般信息:

我已经成功配置了两个 Cocoapod 已发布到的私有规范存储库。我的本地存储库已使用 Cocoapod 发布的步骤进行了更新,并且我验证了预期的 podspec 文件是否存在。

pod repo add my_repo https://gitsite.com/my-spec-repo.git

然后在我的机器上验证:

cd ~/.cocoapods/repos/my_repo
pod repo lint .

我还目视验证了正确的文件和版本是否存在。

然后我将源添加到消费应用程序 Podfile,如下所示:

source 'https://gitsite.com/my-spec-repo/'
source 'https://cdn.cocoapods.org/'

完成所有这些步骤后,一切正常,我可以安装和使用 pod。因此,到此为止一切都很好。

我现在正在构建一个新的私有 Cocoapod,它必须消耗我的一个私有 pods。

在我的 podspec 文件中,我标记了依赖关系:

s.dependency 'my_private_pod', '~> 1.2.3'

我还在 Podfile 中为示例应用程序添加了一个条目。

pod 'my_private_pod', '~> 1.2.3'

当我在我的新私人 pod pod repo update 上更新 repo 时,一切正常,我看到 pod 成功安装并且可以查看我项目中的文件。

但是,问题在于尝试以发布它为最终目标来检查新 pod。

 -> my_new_private_pod (0.0.1)
    - ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for `my_private_pod (~> 1.2.3)` depended upon by `my_new_private_pod`

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.
) during validation.

[!] my_new_private_pod did not pass validation, due to 1 error.

如上所述:

  1. 我确实更新了我的存储库并确认了预期的文件
  2. 已验证所有版本数据。这包括将文本直接从有效的 Podfile 复制到无效的 Podspec
  3. repo 存在于 Podfile 中并通过将 pod 成功安装到示例目标中得到确认

我也确实采取了一些额外的步骤。

我将 lint 命令修改为以下内容,现在可以使用了:

pod lib lint --sources=my_repo,trunk

显然,您必须使用 --sources 标志向 lint 命令提供私有仓库。

在我的例子中,需要 my_repo 来包含我的私人仓库,而需要 trunk 来包含 public pods。将两者结合使可可pods快乐。