Оригинальный ответ от дней до покупки приложения. Правильный ответ сейчас - отправить один двоичный файл и предложить свою платную версию через в обновлениях приложения . Это немного больше кода, но это одна отправка, и ваш коэффициент конверсии, вероятно, будет лучше.
Однако, если вы все еще хотите версии вашего приложения:
XCode имеет хорошую поддержку для нескольких целей.
В меню проекта выберите «Новая цель ...». Добавьте еще один исполняемый файл iPhone (Cocoa Touch Application), который затем можно будет указывать в зависимости от ресурса, какие элементы включены в вашу цель. Это может включать в себя только компиляцию определенного кода в платную версию.
Вы можете быстро получить визуальную обратную связь о том, что включено в текущую цель, а что нет, щелкнув правой кнопкой мыши заголовок списка «Группы и файлы» (верхние lhs) и включив целевое членство.
Вы переключаетесь между созданием разных целей так же, как вы переключаетесь между строительством для симулятора или iPhone.
Чтобы указать во время сборки, как ведет себя конкретный класс, вы можете сделать две вещи - включить две версии класса, каждая из которых создана для соответствующей цели, или вы можете установить флаг времени сборки для препроцессора. Выберите цель в списке «Группы и файлы», затем «получить информацию» об этой цели. Перейдите на вкладку сборки и выполните поиск «препроцесс». Вы должны увидеть элемент под названием «Макросы препроцессора», добавьте LITE
к вашей легкой цели и таким же образом добавьте PAID
к своей платной цели.
В ваших исходных файлах вы можете определить во время компиляции, какую версию вы компилируете для использования #ifdef LITE
и т. Д.
Более того, вы можете установить глобальный флаг или переменную-член AppDelegate на основе #ifdef LITE и изменить поведение во время выполнения для Lite и платных приложений. Я не уверен, что вижу в этом ценность.