Когда мы разрабатываем наши приложения, у нас есть один базовый URL-адрес серверной части для целей тестирования, а другой - для отправки приложения в живую среду.

Если вы вручную управляли этим, комментируя базовый URL-адрес фазы тестирования, раскомментируя действующий базовый URL-адрес каждый раз, когда вы архивируете и запускаете свое приложение в производство, вы знаете, насколько это хлопотно. Иногда вы даже можете забыть это сделать и нажать на приложение, указавшее тестовый URL.

Если такое случалось с вами раньше, и вы хотите избежать подобных ошибок, то вот решение для вас.

Конфиген:



Я нашел это решение лучшим для меня, так как мне пришлось использовать для работы более двух разных базовых URL-адресов серверной части.

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

Когда мы создаем проект Xcode, по умолчанию у нас есть только одна схема.

Теперь мы создаем наши схемы, такие как Разработка, UAT, Производство и т. Д., В соответствии с нашими потребностями. Итак, чтобы создать схему, нажмите «Новая схема», дайте ей имя и выберите цель (если у нас несколько целей), для которой вы хотите создать схему.

Идите вперед и нажмите ОК. Мы успешно создали нашу схему. Повторите процесс для выпуска, UAT и т. Д.

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

Загрузите исполняемый файл по этому пути https://github.com/theappbusiness/ConfigGenerator/blob/main/ConfigenDemo/configen и переместите его в созданную нами папку конфигурации.

Теперь перейдите в Xcode и добавьте конфигурацию папки как группу внутри проекта.

После этого мы собираемся создать файлы plist для наших сред. Щелкните правой кнопкой мыши только что добавленную группу конфигурации и выберите в меню Новый файл. В открывшемся окне шаблона найдите Список свойств и выберите его. Дайте ему имя. Мы создаем список свойств конфигурации для схемы Разработка, поэтому назовем ее development-config.plist. Повторите тот же процесс для других схем.

Создайте файл AppEnvironment.map или загрузите его со страницы https://github.com/theappbusiness/ConfigGenerator/blob/main/ConfigenDemo/AppEnvironment.map

Переместите его в папку конфигурации, которая есть в нашем проекте.

Добавьте файл, щелкнув правой кнопкой мыши группу конфигурация в Xcode и настройте содержимое файла, как показано ниже:

Теперь мы собираемся добавить Цели для схем, чтобы построить соответствующую конфигурацию.

Перейдите в Файл ›Создать› Цель.

Вы увидите окно, как показано ниже. Перейдите на вкладку Другое и выберите Внешняя система сборки.

Дайте ему имя в зависимости от схемы и нажмите Готово.

После нажатия кнопки «Готово» цель с заданным вами именем появится, как на изображении ниже.

Проделайте то же самое для других схем, и мы получим что-то вроде этого.

После того, как вы это сделаете, проверьте правую часть, чтобы настроить конфигурацию. В поле Build Tool добавьте «./configuration/configen» без кавычек. В поле Аргументы добавьте «-p ./configuration/<▪release-config.plist -h ./configuration/AppEnvironment.map -n AppEnvironment -o ./configuration» без цитаты.

Поля Аргументы различаются в зависимости от цели. Измените выделенное имя чуть выше в соответствии с целевым списком и списком конфигурации.

После того, как вы добавили вышеуказанные данные во все цели, то есть uat-target, development-target и release-target в нашем случае, выберите схему и отредактируйте ее.

После того, как вы нажмете «Редактировать», вы увидите следующее окно.

Выбрав Сборка, нажмите значок + над кнопкой Дублировать схему и выберите цель, которую мы добавили ранее, в соответствии со схемой, которую мы редактируем.

Выберите и нажмите Добавить. После этого в предыдущем окне будет показана цель.

Примечание. Добавьте все свойства, которые вы добавили в AppEnvironment.map, во все файлы config.plist, например development-config.plist, release-config.plist и т. Д.

Теперь создайте проект.

Наш проект будет успешно построен, если все шаги будут выполнены правильно.

После успешной сборки внутри группы конфигурации будет создан файл с именем AppEnvironment.swift. Щелкните правой кнопкой мыши группу конфигурации и добавьте вновь созданный файл AppEnvironment.swift.

Если мы откроем и проверим этот файл, мы увидим созданную конфигурацию, которую мы предоставили из файла config.plist, в зависимости от созданной нами схемы. Выберите другие схемы, соберите проект и посмотрите изменения в файле AppEnvironment.swift.

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

Пожалуйста, не стесняйтесь аплодировать, если вам понравилась эта статья. Если вам нужен демонстрационный проект для этого, вот ссылка на github. Https://github.com/nabs107/ProjectHandlingMultipleEnvironments