Добавление цели в проект Xcode - PullRequest
11 голосов
/ 14 сентября 2011

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

Мой план состоял в том, чтобы просто скопировать проект, создать новый, добавить рекламу в код и выпуститькак отдельное приложение.Однако кто-то упомянул, что лучшим решением было бы добавить дополнительную цель к существующему приложению, предоставляя два двоичных файла во время выполнения.

Мне кажется, это хорошее решение, однако я немного смущен тем, какЯ хотел бы изменить код, чтобы встроить рекламу в новую цель, и оставить оригинал нетронутым?

Ответы [ 3 ]

7 голосов
/ 14 сентября 2011

Я следовал этому учебнику , который, хотя и старый, был в основном тем же для xcode 4. Я продублировал цель и p-список, убедившись, что смог запустить его сизменения и не влияют на целевую версию.

Затем я продублировал .xib-файлы, которые были бы другими.Если вы посмотрите в настройках проекта, где-то вы можете найти список, который позволяет вам выбрать, какие ресурсы включены.Включите xibs облегченной версии в облегченную версию и полную версию соответственно.После этого вы сможете редактировать каждое из них, не затрагивая другое.

Значки и изображения можно изменять таким же образом.Просто создайте набор значков облегченной версии или другой набор изображений и включите значки облегченных символов в настройках ресурса цели lite вместо изображений полной версии.

Кроме того, вы захотите создать некоторые макросы препроцессора.На вкладке сборки найдите их и создайте макрос с именем LITE_VERSION (или что бы вы ни хотели, это не имеет особого значения) для каждого параметра предварительной обработки - отладка, распространение и выпуск.

Это позволяет добавлять разные коды в одни и те же файлы .h и .m.Просто используйте

#ifdef LITE_VERSION
// Lite version only code here
#endif

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

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

2 голосов
/ 17 сентября 2013

XenElement ответ правильный. Но вы должны увидеть лучшие практики, чтобы сделать это. У вас должен быть класс идентификатора для проверки целей. Если вы используете макросы повсюду в коде, это не будет хорошо для вас и других разработчиков. В этом небольшом сообщении в блоге вы можете увидеть, как создать такой класс идентификаторов, и узнать некоторые рекомендации по целям в xcode.

0 голосов
/ 11 августа 2014

Я следовал этому Just2us: Как создать несколько целей для iPhone проектов Xcode учебник.

Я решил изменить шаг 3 с подсказкой Стю, явно указав FULL_VERSION в платной версии.

"Чтобы решить проблему непреднамеренного определения LITE_VERSION в качестве препроцессора макроса (случайно выпуская полную версию), я поместил этот небольшой фрагмент кода в заголовочный файл (он просто должен быть где-то в базе кода просто убедитесь, что это общее для всех конфигураций) ":

#ifndef LITE_VERSION
    #ifndef FULL_VERSION
        #error You probably forgot to specify if this is the Lite or Full version of the app
    #endif
#endif

PS: код выше я написал сразу после #import в AppDelegate.

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