如果有人知道自 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/