Добавление SwiftLint в качестве зависимости к проекту Podspec

Я новичок в Cocoapods, и я надеюсь, что на этот вопрос легко ответит «RTFM», но «M», предоставленный Cocoapods, похоже, не отвечает на мой вопрос.

Я применяю SwiftLint к своим проектам.

Я могу легко добавить его в свои проекты, включающие другие модули (просто добавьте «pod 'SwiftLint', '~> 0.24'»), но мне трудно добавить его на мой проект Cocoapod.

Как я уже сказал, я всего пару недель увлекаюсь Cocoapods и знаю, что в этой кроличьей норе есть пути. Этот проект также представляет собой преобразование предыдущей структуры, поэтому это не было преобразование 1-к-1 в структуру Cocoapods.

Проблема в том, что мне нужно иметь возможность добавлять SwiftLint в проект BMLTiOSLib так же, как я это делаю в проектах, включающих BMLTiOSLib. Это то, что я запускал во время сборки BMLTiOSLib.

Когда я пишу подфайл для SwiftLint, я получаю несколько коллизий, и, честно говоря, я недостаточно знаю внутреннюю работу Cocoapods, чтобы правильно их диагностировать.

Есть ли довольно простое руководство по включению таких вещей, как SwiftLint, в проект Cocoapod?


person Chris Marshall    schedule 10.12.2017    source источник


Ответы (2)


Когда вы находитесь в проекте Cocoapod, вам нужно написать в Podspec, что ваш проект имеет зависимость от SwiftLint, а не просто добавить его:

Pod::Spec.new do |spec|
...
  spec.dependency 'SwiftLint'
end
person barbarity    schedule 10.12.2017
comment
Я это сделал. Ничего не произошло. Я думаю, что есть еще кое-что, что мне нужно сделать. Поскольку я не выполняю «обновление модуля» или «установку модуля», я не использую модуль SwiftLint и не могу его протестировать (на самом деле, я не очень заинтересован в экспорте SwiftLint. Мне это нужно). для собственной работы). - person Chris Marshall; 11.12.2017
comment
Я подозреваю, что проблема в том, что когда я настраивал проект, я не сильно отклонялся от автоматически сгенерированного шаблона. Я думаю, что мне нужно потратить некоторое время, изучая настройки моего проекта. - person Chris Marshall; 11.12.2017
comment
Ух ты. Просто вау. Похоже, мне нужно будет полностью реструктурировать проект с нуля (не такая уж большая проблема), начиная с шаблона Ignore Cocoapods. - person Chris Marshall; 11.12.2017
comment
Одна из причин, по которой это может происходить, заключается в том, что Cocoapods задумывался как менеджер зависимостей проекта, а не какой-то инструмент для XCode... - person barbarity; 11.12.2017
comment
Да... это произойдет и с другими зависимостями. Проблема в том, что в шаблоне есть некоторые xcconfigs, которые конфликтуют с зависимыми модулями. В моем случае проще всего было просто перезапустить структуру (в фреймворке всего 3 файла), а не использовать xcconfigs. Кажется, что большинство людей в наши дни не узнали бы бритву Оккама, если бы они брились ею. - person Chris Marshall; 11.12.2017

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

Это не так сложно исправить, но я все равно решил выбросить шаблон, просто потому, что он превращал очень простую маленькую структуру в византийский беспорядок.

person Chris Marshall    schedule 12.12.2017