Выдвижение взаимозависимых Cocoapods в Repo CDN - проблема с возможной последовательностью - PullRequest
4 голосов
/ 09 января 2020

Заинтересован, если кто-то знает способ эффективного добавления sh взаимозависимых модулей в транк CocoaPods с момента обновления CDN Repo.

Допустим, у меня есть 2 модуля в monorepo: pod1 и pod2 , где pod1 указан как зависимость для pod2 .

Сценарий в моем конвейере CI увеличивает версии модулей и зависимости в соответствующих файлах spe c.

pod1.podspe c:

...
s.version = 1.0.1

pod2.podspe c:

...
s.version = 1.4.4
s.dependency 'pod1', '1.0.1'

Сценарий затем толкает модули в Trunk один за другим:

  1. pod push pod1.podspec успешно передает в Trunk новую версию (1.0.1)
  2. 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, это будет успешно.

Похоже, что объекты в CDN Repo имеют TTL ~ 5 минут

Можно было бы заставить скрипт развертывания ждать 5 минут после каждого pu pu sh, но это неоптимально, особенно для монорепос со многими взаимозависимыми модулями. Я думал об ослаблении требования к версии, например, s.dependency 'pod1', '~> 1.0.1', но это не всегда приемлемый вариант.

Мне не удалось найти много информации об этом, поэтому я хотел узнать, есть ли у кого-нибудь пришли к лучшим решениям этой проблемы.

1 Ответ

0 голосов
/ 11 января 2020

Попробуйте добавить pod repo update после pod push pod1.podspec.

...