Диспетчер зависимостей iOS в Cocoa Touch Framework - PullRequest
0 голосов
/ 09 сентября 2018

Я некоторое время безуспешно изучал вопрос о том, как я могу создать каркас касания какао, добавить менеджер зависимостей для сторонних библиотек и, наконец, добавить каркас в проект приложения.

Во-первых, я хотел бы сказать, что фреймворк, с которым я планирую работать, будет разрабатываться и тестироваться, пока я пишу приложение, это будет подмодуль git основного проекта git и.

В идеале, структура моего всего проекта выглядит так

Finder: enter image description here

Проект

enter image description here

Это хороший способ работы?

Во-вторых, главная проблема, с которой я сталкиваюсь, - это как добавить менеджер зависимостей в мою среду

Я пробовал "Карфаген" и "Cocoapods"

С Карфагеном Основной проект падает, так как он не может найти фреймворки и с "Cocoapods", потому что он создает рабочие пространства, я не могу импортировать фреймворк или, по крайней мере, я не не знаю как это сделать.

Кто-нибудь знает способ интеграции диспетчера зависимостей в сенсорный каркас Cocoa без конфигурации проекта приложения?

Спасибо.

Удалена отредактированная деталь из-за нечестных голосов

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Открыть для редактирования и предложения! Продолжение следует, когда диспетчер пакетов Swift выпущен для iOS

Кроме того, я хочу извиниться, если что-то не так.

ОТВЕТ:

Через некоторое время, пробуя разные способы и методы и с ответом на drekka, я выяснил, как использовать Carthage в качестве менеджера зависимостей для моей инфраструктуры сенсорного ввода Cocoa.

My Framework содержит все файлы и папки Carthage, включая Frameworks, но в нем нет сценария запуска.

enter image description here

Поскольку мой фреймворк содержит публичные переменные, которые зависят от импортируемых фреймворков, при их использовании в проекте приложения Xcode может их найти.

enter image description here

Итак, в моей цели приложения "TheApp - General - Связанные фреймворки и библиотеки" я перетащил ссылку на каркас каркаса:

enter image description here

И, действительно, местоположение добавляется в «TheApp - Настройки сборки - Путь поиска - Путь поиска платформы»

enter image description here

В этот момент приложение компилирует прогоны в симуляторе, но вылетает, когда запускается в реальном устройстве, как показано в вопросе. Для решения этой проблемы я добавляю скриншоты Карфагена в «TheApp - Build фазы»

enter image description here

И работа сделана!

Я ожидал более легкой интеграции, подобной той, которую вы получаете с gradle в Android, но сейчас я думаю, что это лучший подход.

0 голосов
/ 10 сентября 2018

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

Когда вы создаете фреймворк, вы хотите связать его с любой зависимостью, управляемой Карфагеном, но НЕ включать ее в фреймворк.Это относительно просто сделать.Просто перейдите к своей цели фреймворка и добавьте каркасные каркасы из <project-dir>/Carthage/Build/<platform>.Каталог Carthage должен также оказаться в пути поиска фреймворков.

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

Затем вам нужно сделать один дополнительный шаг.Вам нужно добавить этапы сценария запуска и указать ему выполнить carthage copy-frameworks, а затем добавить к этому этапу каждый из встроенных файлов карфагенского каркаса.Причиной этого является то, что Apple создает фреймворки, требующие дополнительной работы, прежде чем они будут скопированы в пакет вашего приложения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...