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

На самом деле, мое приложение для 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 Ответ

22 голосов
/ 14 апреля 2011

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

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

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

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

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