Xcode / IOS несколько приложений с одинаковой базой кода / проектом
Я пытаюсь настроить xcode, чтобы позволить мне создавать / публиковать 2 приложения с использованием одного и того же кода, но с разными значками приложений, активами и другой базой данных.
если у меня есть 2 приложения, использующие один и тот же код:
- приложение 1: список фруктов (отображение списка фруктов)
- приложение 2: список овощей (отображение списка овощей)
Для обоих приложений у меня будет уникальный идентификатор пакета (конечно), тот же код, но разные изображения и база данных. Как я могу настроить Xcode для одного проекта и иметь возможность выбирать, какое приложение я хочу создать?
Кажется, я понимаю, что у нас есть возможность использовать схемы, цели или конфигурацию сборки, но пока то, что я обнаружил, было более запутанным, чем что-либо еще.
Любые предложения / помощь по этому поводу приветствуются! Похоже на безумное решение иметь несколько проектов в этом случае и дублировать изменения от одного к другому.
Спасибо.
2 ответа
Вариант 1:
Самый простой способ - создать один проект и добавить к нему несколько целей «приложения». Вам нужно будет убедиться, что к каждой цели добавлены правильные исходные файлы (много информации о SO о том, как это сделать, включая: Xcode легко добавляет несколько файлов в цель ).
Каждая цель может иметь индивидуальный идентификатор пакета, как вы упомянули, но вы можете выбрать, какие исходные файлы / изображения / и т. Д. Добавлять к каждому из них. Вы также можете установить отдельные флаги сборки, переменные среды и т. Д. В «Настройках сборки» для каждой цели.
Вы должны использовать целевое меню на панели инструментов Xcode (над вкладками исходного файла), чтобы выбрать, какую цель вы хотите создать и запустить.
Вариант 2:
Другой вариант (или действительно вариант варианта 1) состоит в том, чтобы иметь 2 цели приложения в одном проекте (как вариант 1), а также создать третью цель, которая будет фреймворком. Эта структура может инкапсулировать часть общего кода между приложениями. Например, в моем приложении у меня есть звуковой движок, который используется в версиях приложения для iOS и macOS. Исходные файлы для этой платформы принадлежат только одной цели (платформе), а затем структура добавляется как зависимость обеих целей приложения.
Вы описываете проект с двумя целевыми приложениями. При сборке / запуске просто переключите всплывающее окно схемы в верхней части окна на нужное.
Чтобы поделиться кодом между приложениями, просто добавьте файл в обе цели приложения.