Как грамотно управлять зависимостями без cocapods


#1

Создаем проект:

Подключаем git:

Создаем репозиторий на github:

Открываем терминал, переходим в папку с проектом:

сd /Users/alexander/Desktop/TestGit

Объединяем:

git remote add origin https://github.com/AlexanderNaumov/TestGit.git

Отправляем изменения на github:

git push -u origin master

###Подключаем подмодуль (пусть будет realm).

Копируем адрес:

В терминале пишем (по прежнему находясь в папке с проектом):

git submodule add https://github.com/realm/realm-cocoa.git

Коммитим:

git commit -a -m 'add realm'

Далее:

git push -u origin master

После чего на github видим следующую картину:

Возвращаемся в терминал, переходим в папку с realm (по прежнему находясь в папке с проектом):

cd realm-cocoa

И подтягиваем зависимости realm:

git submodule init
git submodule update

Открываем xcode, перетаскиваем realm из realm-cocoa:

Добавляем framework в проект:

Коммитим изменения:

Всё:)

###Как скачать:

git clone https://github.com/AlexanderNaumov/TestGit.git
cd TestGit
git submodule update --init --recursive

###Как обновить подмодуль (находясь в папке с проектом):

cd realm-cocoa
git pull origin master
cd ..
git commit -a -m 'submodule update'
git push -u origin master

#2

Отлично, спасибо огромное!


#3

Джедай, есть джедай :slight_smile:


#4

Благодарю :slight_smile:. И вообще хочу выразить большую благодарность создателю данного ресурса и всем тем, кто безо всякого пафоса помогает людям решать задачи в этом увлекательном деле. Спасибо


#5

Вопрос сквозь года)
Я сделаль как в методичке выше и все прекрасно работает, но только при debug, когад запускаю сам приложение, оно тут-же крашится, в чем может буть причина?
Если подскажете, буду примного благодарен)


#6

Фреймворки бываю статические и динамические

Статические инжектятся в бинарник приложения, динамические лежат в папке frameworks внутри приложения (при дебаге лежат в билд папке рядом с приложением) и грузятся при старте. Соответственно для динамических нужно выбирать embed (копировать их), для статических not embed.

Спустя года уже можно пробовать SwiftPM, если его возможностей недостаточно давно есть Carthage.