Настроить CI под iOS

10 000 руб. за проект
03 ноября 2021, 11:03 • 2 отклика • 31 просмотр
Есть два типа загрузок:

  • Development. Сборка и загрузка одного или нескольких таргетов в testflight.
  • Production. Сборка и загрузка одного или нескольких таргетов в testflight, автоматическое подтверждение соответствия экспортным требованиям, создание новой версии и отправка на проверку.
Требуется наладить CI для каждого типа загрузок и написать небольшой readme по тому, как это было реализовано.

Юзерстори
  • Разработчик редактирует конфигурационный файл, в котором указывает:
    • Номер версии
    • Тип загрузки (production или development)
    • Список таргетов для сборки
    • Комментарий к релизу или комментарий для тестирования (в случае если это development билд)
  • Разработчик после пуша в ветку нажимает кнопку в gitlab и запускает пайплайн для той ветки, для которой требуется провести сборку и загрузку
  • Приложения загружаются в apple и выполняются соответствующие конфигурационному файлу действия, в проекте хранится пример конфига с полным списком таргетов
  • Номер сборки указывается в соответствии с timestamp момента, в который была запущена сборка.
Что у нас уже есть На данный момент имеется fastfile под fastlane, который выполняет указанные действия. Работает нестабильно, время от времени отваливается. Есть xcode сервер на отдельной машине, на котором настроена сборка одного таргета.

Это устроено следующим образом:

  • Самописная утилита генерирует конфигурацию для xcodegen, ориентируясь на выбранный энвайромент
  • Xcodegen на основе полученного конфига генерирует xcodeproj-файл с проектом
  • CocoaPods подтягивает в получившийся файл зависимости и выдает xcworkspace-файл, в котором уже и происходит работа