Как я могу создать два проекта, используя один и тот же источник с другим именем приложения и info.plist?

На самом деле, мое iOS-приложение содержит несколько версий в одном и том же проекте, измененных с помощью #define в Static классе.

Пример:

#import "AppVersion.h"

//...

if (MYAPP_VERSION == kMyAppVersionFree) {
   //Limited features
}
else if (MYAPP_VERSION == kMyAppVersionFull) {
   //No limit !
}

Каждый раз, когда я хочу скомпилировать, я должен редактировать свой код, чтобы изменить #define MYAPP_VERSION и изменить имя проекта, чтобы иметь возможность выпускать исполняемые файлы MyApp и "MyApp Free"...

Можно ли определить это как "переменная компиляции"? Я не хочу редактировать свой код каждый раз, когда хочу скомпилировать 2 версии

Как я могу создать 2 проекта, используя один и тот же источник (много классов), но с другим именем приложения и другим info.plist (и, относительно предыдущего вопроса, разными "переменными компиляции")?

Я запрашиваю другой info.plist потому что моя "Бесплатная версия" не поддерживает общий доступ к файлам iTunes, но моя "Полная версия" поддерживает...

Любая идея? Как вы управляете версиями в своих проектах?

Ответы

Ответ 1

Вам нужно определить цели для разных версий.

Нажмите на корень вашего проекта (синий значок xcode). Вы увидите настройки своего проекта в таблице. С левой стороны вы увидите заголовок "TARGETS" с одним ребенком, название вашего проекта.

Вы можете щелкнуть правой кнопкой мыши по цели и дублировать ее. После дублирования вы можете переименовать его, а затем настроить его отдельно. Одной из настроек проекта являются значения препроцессора GCC. Вы можете определить LITE или FULL переменные на основе вашей цели, а затем использовать #ifdefs в коде для выполнения условной компиляции.

Вы можете добавлять разные файлы pList для разных целей. Просто щелкните правой кнопкой мыши на файлах pList и включите или исключите файлы для каждой цели.