iOS Dev

Как использовать Fastlane для быстрого развертывания приложения iOS

Экономьте время за счет автоматизации развертывания

Если вы разработчик iOS, например я, вам следует использовать Fastlane для быстрого развертывания приложения. Это экономит время - много времени. На протяжении многих лет я использую Fastlane для развертывания своих приложений и приложения нашей компании. Сегодня я расскажу вам, как настроить и использовать Fastlane для более быстрого развертывания приложения iOS в Apple Store.

Я полагаю, вы знаете, как вручную развернуть приложение iOS в App Store.

Феликс Краузе основал Fastlane . Инструмент с открытым исходным кодом. Вы можете использовать его для автоматизации развертывания приложений iOS и Android на вашем компьютере или использовать его с другими веб-службами для непрерывной интеграции. Вот исходный код:



Вы изучите следующие темы:

  1. Установить
  2. Настраивать
  3. Конфигурация Fastlane
  4. Как собрать и загрузить в тестовом полете
  5. Сборка и загрузка в тестовом полете с приложением на базе Cocoapod
  6. Подключиться к Itunes Подключиться для загрузки метаданных
  7. Скачать скриншоты из iTunes Connect
  8. Как эффективно использовать и загружать метаданные
  9. Как собрать и отправить в App Store на проверку
  10. Как создать новую версию приложения и отправить на рассмотрение
  11. Как использовать отдельные приложения Itunes для постановки и производства
  12. Сценарий оболочки для дальнейшей автоматизации

1. Установить

Если вы используете RubyGems (macOS / Linux / Windows), вы можете использовать следующий способ установки Fastlane на свой компьютер.

sudo gem install fastlane -NV

Я использую macOS и Homebrew, поэтому использую Homebrew для установки Fastlane на свой компьютер.

brew install fastlane

Если при установке возникают какие-либо проблемы, связанные с новой macOS, например macOS Big Sur, иногда можно удалить Homebrew и переустановить ее.

Выполните следующие команды, чтобы удалить и установить Homebrew, только если вы не можете использовать Homebrew для установки Fastlane.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. Настройка

Сначала войдите в каталог вашего проекта в терминале.

Затем выполните следующую команду:

fastlane init

Как видите, для продолжения будут показаны четыре варианта. Если вы выберете от 1 до 3, задачи будут автоматизированы. Вы также можете выбрать 4, чтобы сохранить конфигурацию позже.

В зависимости от выбора Fastlane может попросить вас ввести имя пользователя и пароль для подключения к iTunes. Fastlane подключится к iTunes и сохранит эту информацию.

3. Конфигурация Fastlane

После первой инициализации Fastlane создаст в вашем проекте каталог «fastlane». Там вы увидите два файла

  1. Appfile
  2. Fastfile

Appfile содержит конфигурацию, относящуюся к iTunes Connect. Обычно я открываю свой редактор VSCode, чтобы записать свои изменения, но вы можете использовать любой текстовый редактор.

Fastfile содержит конфигурацию, относящуюся к развертыванию приложения.

3.1 Файл приложения

Если вы откроете Appfile, вы увидите, что теперь два действия закомментированы:

Как правило, если вы используете автоматическое соединение и выбираете соответствующее приложение в своей учетной записи разработчика, вы можете увидеть следующие данные:

app_identifier("APP_ID") # The bundle identifier of your app
apple_id("EMAIL_ADDRESS") # Your Apple email address
itc_team_id("XXXXX") # App Store Connect Team ID
team_id("XXXXX") # Developer Portal Team ID

Если вы выберете ручной выбор, введите соответствующие данные для этого файла.

3.2 Fastfile

Он выполняет задачу, связанную с развертыванием. Каждая задача может содержать несколько подзадач. Согласно Fastlane, основная задача называется полосой. Сказать:

дорожка - это всего лишь некоторая конфигурация для развертывания.

Если вы сейчас откроете Fastfile, вы увидите следующий экран:

Конфигурация в Appfile и Fastfile написана на языке программирования Ruby. Но понять это несложно.

У Fastlane очень хорошая документация. Таким образом, вы можете легко узнать, как использовать Fastlane. Но теперь я поделюсь некоторыми распространенными решениями типа кулинарных книг, которые я регулярно использую в своем случае.

4. Как собрать и загрузить в тестовом полете

Откройте Fastfile и напишите следующие действия. В этом случае я предполагаю, что вы не используете CocoaPod.

Теперь, если вы напишете fastlane beta в своем терминале, он выполнит полосу бета.

Итак, здесь, в конфигурации, мы сначала определили полосу с именем beta, которая начинается с do и заканчивается end.. В ней мы написали:

increment_build_number - увеличить номер сборки проекта XCode

build_app - С помощью действия build_app он создаст и подпишет приложение.

upload_to_testflight - Это загрузит новый двоичный файл в App Store Connect для тестирования.

Кроме того, перед lane стоит desc, который предназначен только для целей документации, для чего предназначен lane.

5. Сборка и загрузка в тестовом полете с помощью приложения на базе Cocoapod.

Обычно во всех своих приложениях для iOS я использую CocoaPod. Но если библиотека поддерживает Swift Package Manager, я предпочитаю Apple. В любом случае, если вы используете CocoaPod в своем проекте XCode, то же решение для вышеуказанного сценария будет таким:

В этом случае, как вы видите, increment_build_number и build_app имеют некоторые параметры, которые определяют, какой проект XCode используется и какое рабочее пространство и схема XCode используются.

6. Подключитесь к Itunes. Подключитесь для загрузки метаданных.

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

fastlane deliver download_metadata

Видите ли, он загрузит все метаданные из каталога fastlane.

7. Загрузите скриншоты из iTunes Connect.

Если вы хотите загрузить скриншоты из своей учетной записи iTunes Connect, попробуйте следующее:

fastlane deliver download_screenshots --use_live_version true
# OR
fastlane deliver download_screenshots

Если вы редактируете версию и загружаете снимки экрана из этой версии, пропустите часть --use_live_version true.

Эти команды создадут новый каталог в каталоге Fastlane с именем «снимки экрана» и загрузят в него все снимки экрана.

8. Как эффективно использовать и загружать метаданные

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

Давным-давно это было утомительным занятием. Если вы используете 20 языков для метаданных вашего магазина приложений, вам нужно написать 20 примечаний к выпуску для каждого языка. Но с Fastlane работа проста, и позвольте мне поделиться с вами решением.

  1. Создайте каталог с именем «по умолчанию» в каталоге метаданных.
  2. Поместите туда release_notes.txt файл и напишите, что вы хотите сообщить пользователю о последней бинарной версии
  3. Если есть другие release_notes.txt файлы на другом языке, удалите их.

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

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

Теперь, когда я хочу загрузить только метаданные, я сначала определил новую полосу в Fastfile с именем meta.

И введите в терминал:

fastlane meta

deliver - действие по загрузке данных в Itunes Connect. В этом случае я просто загружаю только метаданные, но не скриншоты.

Если вы хотите загрузить и метаданные, и снимки экрана, установите skip_screenshots: false

9. Как собрать и отправить в App Store для проверки

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

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

10. Как создать новую версию приложения и отправить на рассмотрение

В этом сценарии вы хотите:

  1. Создайте новую версию приложения
  2. Вы хотите передать номер версии из терминала
  3. Отправьте бета-версию TestFlight на рассмотрение в магазин приложений

Обычно мы посещаем iTunes Connect и вручную создаем новую версию приложения iOS, нажимая кнопку (+), верно? Но в этом случае мы все сделаем автоматически.

Вот конфигурация:

Теперь выполните следующие команды в Терминале:

  1. Создайте приложение и загрузите его в testflight, дождитесь завершения задачи в терминале.
fastlane beta

2. После тестирования приложения, если вы удовлетворены, отправьте его на рассмотрение. Вот вы передали версию магазина приложений: v:18.1.1

fastlane submit_for_review v:18.1.1

Итак, давайте обсудим приведенную выше конфигурацию:

  • Line 4–6 - используется для захвата любого параметра, переданного в командной строке. Поэтому перед выполнением любой дорожки он предоставит параметры key:value в качестве параметров. Поскольку мы используем fastlane submit_for_review v:18.1.1, мы хотим записать номер версии 18.1.1 Дополнительная информация о передаче параметров.

submit_for_review lane также вносит некоторые изменения.

  • Line 25 - мы добавляем |options| после do для захвата параметров из командной строки
  • Line 28 - Добавляем if логику if options[:v] означает, что если указан только номер версии, то выполнять дальше. Так что, если вы запускаете только команды, fastlane submit_for_review v:VERSION_NUMBER это сработает. если пропустить часть v:VERSION_NUMBER, это не сработает
  • Line 30 - Мы добавляем app_version: options[:v] для автоматического создания новой версии приложения iTunes на основе номера нашей версии, переданного в командной строке. В моем случае это будет 18.1.1 Подробнее о доставке
  • Line 34 - Поскольку мы хотим использовать последнюю сборку, которую мы уже загрузили через beta дорожку, мы используем skip_binary_upload: true, который будет использовать предыдущую сборку, отправленную в TestFlight. Если у вас другая сборка для подготовки и производства, вам нужно сделать это по-другому.

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

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

11. Как использовать отдельные приложения Itunes для постановки и производства

Иногда вам может потребоваться разделить приложения для подготовки и производства. По этому поводу:

  • Вам нужно создать два отдельных приложения в iTunes Connect: одно для постановки, а другое для производства.

Например, давайте создадим два приложения iTunes, и вы будете использовать два разных идентификатора приложения:

  1. net.test.app.staging (для внутренних пользователей и тестирования)
  2. net.test.app.production (Последнее приложение для конечных пользователей)

Теперь вам просто нужно переопределить app_identifier. Давайте посмотрим на Appfile.. Если вы сейчас развернете beta, fastlane будет использовать net.mefluence.app.staging, в противном случае будет использоваться значение по умолчанию net.test.app.production.

Подробнее о app_identifier.

12. Сценарий оболочки для дальнейшей автоматизации

Если вам нужно выполнить некоторые задачи в сценариях оболочки и добавить вместе с ними команды Fastlane, вы можете сделать это быстро. Например, в одном из моих приложений я должен сделать:

  1. Оформить заказ на главную ветку Git и получить последний код
  2. Установите стручки какао перед запуском команд Fastlane
  3. Выполнение команд Fastlane

Вот сценарий оболочки, который я написал для этого:

В этом скрипте я определил две функции - pull_latest_code для задач, связанных с git, и deploy для установки модулей и выполнения команд Fastlane. Я проверяю, какую команду получил скрипт в потоке, и на основании этого происходит какое-то исполнение.

Я набираю на своем терминале:

./deploy.sh beta 
# OR
/.deploy.sh prod

И он запускает сценарий и выполняет правильную полосу Fastlane.

Заключение:

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

Я использую Fastlane для всех своих проектов iOS, что экономит у меня много времени. Если вы никогда этим не пользовались, попробуйте.

Последующие сообщения:

  1. Как использовать Fastlane для развертывания файлов dSYM в Firebase Crashlytics