Разработка структуры какао: совместное использование проектов - PullRequest
4 голосов
/ 12 мая 2010

В настоящее время я занимаюсь разработкой нескольких похожих приложений для какао. Стремясь обмениваться кодом между ними, я определил набор базовых классов и функций, которые могут быть общими для всех этих приложений. Я хотел бы объединить этот общий код в среду, с которой могут связываться все мои текущие приложения (и любые будущие).

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

Например, допустим, у меня открыт проект Xcode для DesktopAppNumberOne, и я решил, что нужно изменить один из моих классов инфраструктуры. Я хотел бы:

  1. Откройте и отредактируйте исходный файл для этого класса платформы без необходимости открывать проект платформы в Xcode.
  2. Нажмите "build" на DesktopAppNumberOne и увидите, что сначала перестроена структура (поскольку один из ее источников изменился), а затем просмотрите части перестроенной части DesktopAppNumberOne (поскольку изменилась одна из платформ, на которую она ссылается).

Я вижу, как это сделать только с одним приложением и одним фреймворком, но мне сложно понять, как это сделать с несколькими приложениями, использующими единый фреймворк.

Кто-нибудь имел успех с таким подходом? Возможно, я поступаю неправильно? Любая помощь будет оценена.

1 Ответ

4 голосов
/ 12 мая 2010

Создайте проект XCode для своей платформы.

На панели «Группы и файлы»> См. Синий значок проекта в верхнем левом углу? Перетащите его на панель «Группы и файлы» любого другого понравившегося вам проекта.

Итак, создайте проект приложения и перетащите значок проекта из вашего фреймворкового проекта.

CMD-i для цели вашего приложения . Здесь вы устанавливаете свою зависимость от фреймворка и ссылаетесь на него.

Несколько баллов

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

В целях разработки я нахожу, что настройка настраиваемого общего каталога сборки для каждого проекта облегчает задачу. Я устанавливаю каждый проект для сборки в / Code / Build / Debug . Это означает, что путь поиска фреймворка для отладочной сборки может быть $ CONFIGURATION_BUILD_DIR. Для ваших релизных сборок у вас все еще будет работа с путями установки, rpath и т. Д. Pain in the Ass!

XConfig файлы ваши друзья. Набор инструментов Google Mac с открытым исходным кодом - хороший пример того, как их использовать. Вам, вероятно, понадобится как минимум Project_debug.xconfig , Project_release.xconfig , Target_framework.xconfig , Target_application.xconfig .

...