Хотите знать, как автоматически подтолкнуть ваше приложение для iOS в AppStore? Первоначально написано моим другом Vigneswaran — Пошаговый учебник Детализация о процессе настройки конвейера CI/CD для мобильных приложений iOS с использованием Gitlab ci и fastlane Анкет
Таким образом, это шаги, которые вы должны следовать.
1. Шаги для ручной установки Gitlab Runner:
Вам нужны конкретные бегуны вместо общих бегунов, предоставленных Gitlab, для развертывания iOS. Вы можете установить их на локальных Mac Machines/Mac -серверах (Macstadium). Ниже приведены шаги по настройке бегунов в MacOS и OS X.
1. Загрузите двоичный файл для вашей системы:
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
2. Дать ему разрешения на выполнение:
sudo chmod +x /usr/local/bin/gitlab-runner
Примечание: Остальные команды будут выполняться как пользователь, который запустит бегун. (Это ограничение на macOS).
3. Установите бегуна в качестве сервиса и запустите его:
cd ~ gitlab-runner install gitlab-runner start
2. Шаги для регистрации бегуна:
1. Чтобы зарегистрировать бегуна под MacOS, сначала запустите приведенную ниже команду.
gitlab-runner register
2. Введите URL -адрес экземпляра Gitlab, когда его предъявлен на следующем шаге.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://gitlab.com
3. Введите токен, который вы получили, чтобы зарегистрировать бегуна:
Please enter the gitlab-ci token for this runner xxx
4. Введите описание для бегуна, вы можете изменить это позже в пользовательском интерфейсе Gitlab’s:
Please enter the gitlab-ci description for this runner Local Runner
5. Введите теги, связанные с бегуном, вы можете изменить это позже в пользовательском интерфейсе Гитлаба:
Please enter the gitlab-ci tags for this runner (comma separated): ios,another-tag
6. Введите теги, связанные с бегуном, вы можете изменить это позже в пользовательском интерфейсе Гитлаба:
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: shell
Если все идет хорошо, вы должны увидеть активированных бегунов для вашего проекта, как на изображении ниже.
3. Добавление нашего .gitlab.yml:
Теперь пришло время добавить своего рода файл конфигурации для запуска заданий в трубопроводах Gitlab, которые запускают каждый коммит в определенном репо.
Лучшие практики для модели GIT-разбранного обмена могут быть направлены из этого Статья Анкет Ради простоты, давайте рассмотрим только нашу ветвь « мастер ». Мы предполагаем, что любая коммерция Master Repo необходимо запустить работу в трубопроводе CI.
Давайте настроим файл gitlab.yml, который необходимо размещать в корне репо.
stages: - test_flight variables: LC_ALL: "en_US.UTF-8" LANG: "en_US.UTF-8" before_script: - gem install bundler - pod install test_flight_build: dependencies: [] stage: test_flight artifacts: paths: - fastlane/logs script: - fastlane beta tags: - ios only: - master
Эта конфигурация запускает задание в конвейере CI « Master » только ветвь, которая выполняет задание со стадией « test_flight », который, в свою очередь, выполняет сценарий « Fastlane Beta » с данным Переменные среды на бегуне » с меткой как iOS «.
Указанный «до скрипта», как следует из названия, выполняется перед заданием и артефактами, доступными на указанном пути после успешного выполнения задания.
4. Установка Fastlane в Mac:
Настройка Fastlane является важным шагом во всем процессе, поскольку он является основой процесса развертывания. Чтобы установить Fastlane в вашей системе, пройдите следующие шаги: Установите последние инструменты командной строки XCode:
sudo gem install fastlane -NV
Установите Fastlane с помощью
# Using RubyGems sudo gem install fastlane -NV
# Alternatively using Homebrew brew cask install fastlane
Чтобы начать использовать Fastlane в вашем проекте, вам нужно запустить Fastlane Init из вашего каталога проекта в командной строке.
Fastlane попросит вам некоторую базовую конфигурацию, а затем создаст папку с именем в вашем проекте, которая будет содержать в основном два файла:
1. Fastlane/Appfile
Этот файл прост, поэтому вы просто хотите проверить, чтобы убедиться, что идентификатор Apple и идентификатор приложения, который вы настраивали ранее, верны.
app_identifier("APP IDENTIFIER") # The bundle identifier of your app apple_id("APPLE ID") # Your Apple email address
2. Fastlane/FastFile
FastFile определяет шаги сборки. Поскольку мы используем много встроенных возможностей Fastlane Это действительно просто. Мы создаем одну полосу движения, которая увеличивает номер сборки, получает сертификаты, строит и загружает новую сборку в TestFlight. Конечно, вы можете разделить их на разные задания в зависимости от вашего варианта использования. Каждый из этих шагов, get_certificates, get_provisioning_profile, match, gym и upload_to_testflight-это предварительно связанные действия, уже включенные в Fastlane Анкет
get_certificates и get_provisioning_profile — это действия, связанные с сертификат и вздох подход к кодам; Если вы используете совпадение Вам может потребоваться обновить это, комментируя get_certificates и get_provisioning_profile.
default_platform(:ios) platform :ios do desc "Build the application" lane :beta do increment_build_number( build_number: latest_testflight_build_number + 1, xcodeproj: "${PROJECT_NAME}.xcodeproj" ) get_certificates get_provisioning_profile # match(type: "appstore",read_only: true) gym upload_to_testflight end end
3. Fastlane/Гимфил
Этот файл необязательно, но создан вручную, чтобы переопределить выходной каталог по умолчанию и поместить выход в текущую папку. Это делает вещи немного проще для CI. Вы можете прочитать больше о спортзал
и его варианты в ДОКУМЕНТАЦИЯ ГРУПК Анкет
output_directory("./") clean(true) scheme("${PROJECT_NAME}") workspace("${PROJECT_NAME}.xcworkspace") include_bitcode(true)
5. Подключение точек для подписания кода с помощью Fastlane Match
Подписание кода является наиболее важным аспектом развертывания приложений для iOS, мы, как разработчики iOS, знаем о боли решения вопросов подписания кода.
«Матч» Создает все необходимые сертификаты и профили предоставления и хранит их в отдельном репозитории GIT. Каждый член команды с доступом к репо может использовать эти учетные данные для подписания кода. Матч также автоматически ремонтирует сломанные и истекшие учетные данные. Это самый простой способ поделиться подписанием учетных данных в команде.
Fastlane матч резко улучшает процесс подписания кода, даже для небольших команд, поскольку это реализация Подписание кода концепция.
Для инициализации совпадений заново в вашем проекте, следуйте этим шаги Анкет Одно предостережение заключается в том, что нам нужно генерировать свежие профили и сертификаты.
Но это шоу -остановка для тех, кто пытается использовать его в существующих проектах. Но есть способ обмануть Fastlane Match, чтобы использовать ваши существующие сертификаты. Попробуйте пройти шаги в этом Статья Анкет
И это наконец готово
Существуют некоторые специальные переменные среды, которые мы должны установить, чтобы избежать сбоя рабочих мест из -за 2FA из Apple, которые были сделаны в последнее время. Fastlane_apple_application_specific_password
и Fastlane_session
Чтобы проверить подлинность в App Store для загрузки TestFlight, Fastlane Должен быть в состоянии аутентифицировать. Чтобы сделать это, вам необходимо создать пароль для конкретного приложения для использования CI. Вы можете прочитать больше об этом процессе в Эта документация Анкет
Fastlane_user
и Fastlane_password
Для Cert и вздох Чтобы получить профиль подготовки и сертификаты по требованию, Fastlane_user
и Fastlane_password
переменные должны быть установлены. Вы можете прочитать больше об этом Здесь Анкет Вам может не понадобиться их, если вы используете какой -то другой подход к подписанию.
Вывод
Ах !! Слава вам !!! Мы наконец -то настроили наш собственный рабочий процесс CI/CD с Gitlab CI/CD и Fastlane в качестве основных инструментов.
Спасибо, что прочитали эту статью. Надеюсь, это окажется полезным для настройки надежного рабочего процесса CI/CD для автоматизации процесса развертывания приложения для iOS.
Дайте мне знать, если вы столкнетесь с какими -либо трудностями в настройке того же самого.
Оригинал: «https://dev.to/irshadbluecast/how-to-deploy-ios-apps-to-appstore-automatically-46c1»