Частный Cocoapod в разработке не задерживается при попытке получить доступ к частной зависимости - PullRequest
0 голосов
/ 19 марта 2020

В качестве краткого введения все задействованные кокоаподы содержатся в частных репозиториях.

Некоторая общая информация:

  • Cocoapods версия 1.9.1 (последняя на сегодня)
  • Xcode 11.3.1
  • Инструменты командной строки Xcode 11.3.1 (11C504)
  • Swift 5.0
  • macOS 10.15.3

Я успешно настроил частное репо c репо, на котором были опубликованы два 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/'

После выполнения всех этих шагов, все отлично работает, и я могу установить и использовать модуль. Таким образом, все хорошо на этом этапе.

Сейчас я создаю новый частный Cocoapod, который должен использовать один из моих личных стручков.

В моем файле podspec я отметил зависимость :

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

Я также включил в свой Podfile запись для примера приложения.

pod 'my_private_pod', '~> 1.2.3'

Когда я обновляю репо на моем новом частном модуле pod repo update, все работает нормально, и я вижу, что модуль успешно установлен и может просматривать файлы в моем проекте.

Однако проблема заключается в попытке привязать новый модуль с конечной целью его публикации.

 -> 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. . Репо присутствует в Podfile и подтверждено успешной установкой модуля в пример цели

Я также сделал несколько дополнительных шагов.

  • Удалил производные данные
  • pod deintegrate и переустановил
  • Перезапустил Xcode
  • Кидал вещи в компьютер

1 Ответ

1 голос
/ 19 марта 2020

Я изменил свою команду lint на следующую, и теперь она работает:

pod lib lint --sources=my_repo,trunk

Очевидно, что вы должны предоставить частное репо команде lint с флагом --sources.

В моем случае, my_repo требуется, чтобы включить мое личное репо, в то время как trunk требуется, чтобы включить публичные c модули. Сочетание этих двух делает кокоаподы счастливыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...