iOS Dev
Как использовать Fastlane для быстрого развертывания приложения iOS
Экономьте время за счет автоматизации развертывания
Если вы разработчик iOS, например я, вам следует использовать Fastlane для быстрого развертывания приложения. Это экономит время - много времени. На протяжении многих лет я использую Fastlane для развертывания своих приложений и приложения нашей компании. Сегодня я расскажу вам, как настроить и использовать Fastlane для более быстрого развертывания приложения iOS в Apple Store.
Я полагаю, вы знаете, как вручную развернуть приложение iOS в App Store.
Феликс Краузе основал Fastlane . Инструмент с открытым исходным кодом. Вы можете использовать его для автоматизации развертывания приложений iOS и Android на вашем компьютере или использовать его с другими веб-службами для непрерывной интеграции. Вот исходный код:
Вы изучите следующие темы:
- Установить
- Настраивать
- Конфигурация Fastlane
- Как собрать и загрузить в тестовом полете
- Сборка и загрузка в тестовом полете с приложением на базе Cocoapod
- Подключиться к Itunes Подключиться для загрузки метаданных
- Скачать скриншоты из iTunes Connect
- Как эффективно использовать и загружать метаданные
- Как собрать и отправить в App Store на проверку
- Как создать новую версию приложения и отправить на рассмотрение
- Как использовать отдельные приложения Itunes для постановки и производства
- Сценарий оболочки для дальнейшей автоматизации
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». Там вы увидите два файла
Appfile
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 работа проста, и позвольте мне поделиться с вами решением.
- Создайте каталог с именем «по умолчанию» в каталоге метаданных.
- Поместите туда
release_notes.txt
файл и напишите, что вы хотите сообщить пользователю о последней бинарной версии - Если есть другие
release_notes.txt
файлы на другом языке, удалите их.
по умолчанию означает, что если локализованная информация не найдена, Fastlane будет использовать локализацию по умолчанию для следующего языка.
Так что в моем случае иногда я использую только разные ключевые слова, субтитры и описания для иностранных языков, но остальная информация остается той же. В этом случае я просто помещаю тот же файл метаданных, связанных с информацией, в каталог по умолчанию.
Теперь, когда я хочу загрузить только метаданные, я сначала определил новую полосу в Fastfile
с именем meta
.
И введите в терминал:
fastlane meta
deliver
- действие по загрузке данных в Itunes Connect. В этом случае я просто загружаю только метаданные, но не скриншоты.
Если вы хотите загрузить и метаданные, и снимки экрана, установите
skip_screenshots: false
9. Как собрать и отправить в App Store для проверки
Если вы хотите создать приложение, загрузить метаданные и отправить магазин приложений на проверку, вы можете использовать следующий шаблон.
Действия говорят сами за себя по именам команд. Отметьте следующий шаблон, который является наиболее важным.
10. Как создать новую версию приложения и отправить на рассмотрение
В этом сценарии вы хотите:
- Создайте новую версию приложения
- Вы хотите передать номер версии из терминала
- Отправьте бета-версию TestFlight на рассмотрение в магазин приложений
Обычно мы посещаем iTunes Connect и вручную создаем новую версию приложения iOS, нажимая кнопку (+), верно? Но в этом случае мы все сделаем автоматически.
Вот конфигурация:
Теперь выполните следующие команды в Терминале:
- Создайте приложение и загрузите его в 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, и вы будете использовать два разных идентификатора приложения:
net.test.app.staging
(для внутренних пользователей и тестирования)net.test.app.production
(Последнее приложение для конечных пользователей)
Теперь вам просто нужно переопределить app_identifier. Давайте посмотрим на
Appfile.
. Если вы сейчас развернетеbeta,
fastlane будет использоватьnet.mefluence.app.staging
, в противном случае будет использоваться значение по умолчаниюnet.test.app.production.
Подробнее о app_identifier.
12. Сценарий оболочки для дальнейшей автоматизации
Если вам нужно выполнить некоторые задачи в сценариях оболочки и добавить вместе с ними команды Fastlane, вы можете сделать это быстро. Например, в одном из моих приложений я должен сделать:
- Оформить заказ на главную ветку Git и получить последний код
- Установите стручки какао перед запуском команд Fastlane
- Выполнение команд Fastlane
Вот сценарий оболочки, который я написал для этого:
В этом скрипте я определил две функции - pull_latest_code
для задач, связанных с git, и deploy
для установки модулей и выполнения команд Fastlane. Я проверяю, какую команду получил скрипт в потоке, и на основании этого происходит какое-то исполнение.
Я набираю на своем терминале:
./deploy.sh beta # OR /.deploy.sh prod
И он запускает сценарий и выполняет правильную полосу Fastlane.
Заключение:
Fastlane - это мощный инструмент, который упрощает жизнь разработчикам приложений за счет автоматизации утомительных задач. Нам, разработчикам, очень нравится этот инструмент. Это экономит много времени. Если ваше приложение локализовано на разных языках, вы знаете, сколько времени занимает загрузка или изменение данных для каждого языка.
Я использую Fastlane для всех своих проектов iOS, что экономит у меня много времени. Если вы никогда этим не пользовались, попробуйте.
Последующие сообщения: