Вложенные зависимости Carthage

Я новичок в фреймворках iOS, но, играя с Carthage и Swift, я пришел к очень простому вопросу, но, похоже, не нашел ответа, который ищу.

В настоящее время я играю с Alamofire и ObjectMapper библиотеками и обнаружил, что есть еще одна структура под названием AlamofireObjectmaper, которая изящно создает связь между этими двумя.

Теперь мой вопрос: как мне справиться с этим в моем Cartfile? Моей первой идеей было включить все три

github "Alamofire/Alamofire" ~> 3.0
github "Hearst-DD/ObjectMapper" ~> 1.1
github "tristanhimmelman/AlamofireObjectMapper" ~> 2.1

Но потом я понял, что, поскольку AlamofireObjectMapper полагается на встраивание Alamofire и ObjectMapper в свою собственную структуру, мне не нужно было включать эти два. Поэтому я удалил все и добавил только одну строку AlamofireObjectMapper. И мой прототип все еще работает хорошо (я все еще могу import Alamofire в своем коде.

Как именно мне поступить в такой ситуации? Должен ли я сохранить единую структуру Alamofire и `ObjectMapper. И если да, то как на самом деле с ними справляется Карфаген?

Потому что из того, что я видел, фреймворк AlamofireObjectMapper действительно содержит собственную версию фреймворка Alamofire. Может ли случиться так, что в какой-то момент оба фреймворка Alamofire содержат разные версии? Если да, не вызовет ли это каких-либо проблем во время выполнения?


person Marc-Alexandre Bérubé    schedule 12.04.2016    source источник
comment
Мне кажется, что AlamofireObjectMapper имеет Alamofire и ObjectMapper в качестве подмодулей внутри папки Carthage.   -  person Sentry.co    schedule 04.02.2017


Ответы (1)


Поэтому я определенно думаю, что вы можете просто включить инфраструктуру AlamofireObjectMapper просто потому, что кажется, что репо проверяет свои ресурсы Carthage, включая Cartfile. Поэтому при обновлении AlamofireObjectMapper все зависимости ITS будут обновлены соответствующим образом.

Однако, если по какой-то причине вы чувствуете необходимость вручную обновить или понизить (плохая идея) одну из зависимостей AlamofireObjectMapper, вы можете просто зайти в ее Cartfile и изменить номер версии или операцию версии с ~> на == или что-то еще, что вам может понадобиться. делать. Надеюсь это поможет!

person Geoherna    schedule 12.04.2016