Poor Man's package management

     

Вы наверняка пользовались пакетными менеджерами а-ля CocoaPods и Carthage. Однако иногда возникают ситуации когда вы хотите подцепить себе в проект сторонний проект, но при этом по какой-то причине не хотите пользоваться этими менеджерами пакетов. В таких случаях может пригодиться техника, которую я ласково называю “Poor Man’s package management” (пакетный менеджер для бедных, уж простят меня оные).

Суть техники в следующем - зависимости мы цепляем непосредственно как часть нашего проекта с помощью git submodules. Да, техника работает для пользователей git (хотя лично я знаю как ее применить и для SVN, думается, что уж для популярных DCVS систем такую технику уж точно придумать можно).

Для того, чтобы репозиторий зависимости стал “подпапкой” вашего проекта достаточно сделать так

git submodule add http://github.com/cooluser/coolproject ./deps/coolproject

и далее ручками через xcode добавляем нужные файлы к себе в проект. Не забываем закоммитить .gitmodules себе в проект, это нужно чтобы ваши коллеги могли себе собрать тоже и также.

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

git submodule init
git submodule update