如果有人知道自 Repo CDN 更新以来有效地将相互依赖的 pod 推送到 CocoaPods Trunk 的方法,会很感兴趣。

假设我在 monorepo 中有 2 个 pod: pod1 pod2 其中 pod1 被列为 pod2 的依赖项。

我的 CI 管道中的脚本增加了相应规范文件中的 pod 和依赖项的版本。

pod1.podspec:

...
s.version = 1.0.1

pod2.podspec:
...
s.version = 1.4.4
s.dependency 'pod1', '1.0.1'

然后脚本将 pod 一个接一个地推送到 Trunk:
  • pod push pod1.podspec 在新版本(1.0.1)下成功推送到Trunk
  • pod push pod2.podspec - 验证失败并出错,例如
  • -> pod2 (1.4.4)
    - ERROR | [iOS] unknown: Encountered an unknown error (CocoaPods could not find compatible versions for pod "pod1":
    In Podfile:
        pod2 was resolved to 1.4.4, which depends on
          pod1 (= 1.0.1)
    

    如果我等待 5 分钟然后再次运行 pod push pod2.podspec,它会成功。

    看起来 Repo CDN 中的对象的 TTL 约为 5 分钟。

    每次 pod 推送后,部署脚本可能会等待 5 分钟,但这不是最佳的,尤其是对于具有许多相互依赖的 pod 的 monorepos。我已经考虑过放宽版本要求,例如s.dependency 'pod1', '~> 1.0.1' 但这也不总是一个可行的选择。

    我一直无法找到有关此问题的太多信息,因此我想看看是否有人已经找到了解决此问题的更好方法。

    最佳答案

    尝试在 pod repo update 之后添加 pod push pod1.podspec

    关于ios - 将相互依赖的 Cocoapods 推送到 Repo CDN - 最终一致性问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59656454/

    10-13 08:58