Как создать как Lite, так и полную версию приложения iPhone на основе одного проекта xcode?

Я не хочу поддерживать два набора кода. Мне просто нужно ограничить некоторые функции в версии Lite и добавить на нее некоторые рекламные объявления.

Как это сделать?

Ответ 1

Создайте несколько целей.

Вы можете изменить конфигурацию сборки, щелкнув правой кнопкой мыши по цели и выбрав "Получить информацию". Оттуда вы можете делать такие вещи, как изменение файла Info.plist, на который он смотрит (например, добавить "Lite" к имени и изменить значок/загружать изображения) и установить флаги компилятора, чтобы вы могли #ifdef в местах.

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

Я экспериментировал с различными альтернативами, например с несколькими конфигурациями, и я возвращаюсь к нескольким целям. Обычно у меня есть как минимум три определенных - Разработка, Ad hoc и App Store, каждый со своими собственными настройками.

Ответ 2

Добавьте дополнительную цель в проект Xcode, дублируя существующую. Определите макрос в новой цели (в разделе "макросы препроцессора" в настройках сборки), что-то вроде "macroIsFreeVersion"

Теперь вы можете сделать это:

#ifdef macroIsFreeVersion
  // code that will only execute in the free version here
#endif

и это:

#ifndef macroIsFreeVersion
   // code for only the paid version goes here
#endif

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