Как создать бесплатную версию из платной версии без дублирования проекта Xcode 4? - PullRequest
10 голосов
/ 10 декабря 2011

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

IF !FREE_VERSION 
[self loadGreatFeature];
ELSE
[self loadBoringFeature];

Итак:

  • Как настроить Xcode 4 так, чтобы можно было различать создание / архивирование бесплатной или платной версии проекта?

  • Как указать Xcode 4 включить определеннуюнабор изображений и других ресурсов в платной версии, но не в бесплатной версии (и наоборот)?

  • Как заставить Xcode 4 создать бесплатную ИЛИ платную версию?(не хочу создавать их все время, так как это замедлит развитие)

  • Каковы предостережения этого подхода?

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

1 Ответ

20 голосов
/ 10 декабря 2011

Откройте ваш проект в Xcode и выберите элемент верхнего уровня в Project Navigator . Вы должны увидеть список целей для вашего проекта.

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

Выберите вашу новую цель. На вкладке Этапы сборки вы можете указать, какие исходные файлы будут создаваться как часть этой цели, а также какие ресурсы для нее копируются. На вкладке Параметры сборки найдите Макросы препроцессора и добавьте новый, например MYAPPLITE = 1, для всех конфигураций сборки. Затем вы можете выполнить условную компиляцию в вашем коде с помощью чего-то вроде:

#ifdef MYAPPLITE
    [self loadBoringFeature];
#else
    [self loadGreatFeature];
#endif

Наконец, выберите Редактировать схему ... в меню Продукт. Новая схема должна быть уже создана для вашей новой цели. Вы можете переименовать его в листе Управление схемами , если хотите. Вы можете управлять определенными настройками для создания, запуска, архивирования и т.д. новой цели здесь.

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

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

...