Карфаген: нет доступной версии для github, удовлетворяющей требованию (две платформы импортируют Alamofire с разными версиями) - PullRequest
0 голосов
/ 17 сентября 2018

В моем iOS-приложении я пытаюсь использовать Carthage для импорта двух фреймворков - оба имеют зависимость Alamofire (но разные версии).

Когда я запускаю carthage update --platform ios, я получаю ошибку:

No available version for github "Alamofire/Alamofire" satisfies the requirement: == 4.7.1

В приложение Cartfile для iOS я включаю частный фреймворк и AlamofireImage:

git "ssh://git@<url>.com/<repo-name>.git" "<branch-name"
github "Alamofire/AlamofireImage" == 3.3.1

Когда я немного покопался, я увидел, что AlamofireImage имеет это в Cartfile:

github "Alamofire/Alamofire" ~> 4.7

В моем личном репо github "Alamofire/Alamofire" == 4.7.1

Примечание: в моем личном репо у меня есть и Carthage/Build, и Carthage/Checkouts в моем файле .gitignore, потому что они вызывали шум в обзорах PR.

Кажется, Карфаген пытается найти Alamofire 4.7.1, но по какой-то причине терпит неудачу. Единственное исправление, которое я нашел, - это включение github "Alamofire/Alamofire" == 4.7.1 в Cartfile моего приложения для iOS ... но я не понимаю, почему само приложение iOS должно понимать зависимости его зависимостей.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

В конечном итоге я использовал github "Alamofire/Alamofire" ~> 4.7 в моем частном репозитории фреймворка и github "Alamofire/Alamofire" "4.7.3" в приложении iOS. Теперь все работает хорошо.

У меня также есть привычка удалять кеш-карфаген - удалять каталоги внутри ~/Library/Caches/org.carthage.CarthageKit/DerivedData

0 голосов
/ 11 ноября 2018

Сама iOS не имеет ничего общего с вашими зависимостями, добавленными вместе с Carthage.Проблема заключается в сценариях, которые вы ( carthage ) используете для каждого проекта.Carthage использует каждую конфигурацию проекта ( cartfile ), и он должен соответствовать требованиям.

Так что, если вам нужны разные версии одной и той же платформы (, я не рекомендую ее вообще!Это тратит огромные ресурсы и значительно увеличивает время обеда приложения! И может вызвать побочные эффекты ), вы должны встраивать их в каждый проект.

...