Статьи

Непрерывная доставка с fastlane для iOS

Разработчикам iOS посчастливилось наслаждаться и работать с надежной платформой разработки, предоставленной Apple, в первую очередь с Xcode. Это помогло вдохновить привлекательные и мощные приложения, которыми сегодня пользуются пользователи в App Store. Xcode предоставляет интуитивно понятную среду разработки, и это, в сочетании с появлением Swift как действительно современного языка программирования, сделало программирование на платформе настоящим удовольствием.

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

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

Логотип Fastlane

Разработанный Феликсом Краузе ( @krausefx ), fastlane состоит из набора инструментов с открытым исходным кодом, который объединяет автоматизацию создания и развертывания приложений iOS с помощью командной строки, а также интеграцию с различными сторонними библиотеками в дополнение к собственным API-интерфейсам Apple. , Являясь культовым набором инструментов для iOS-разработчиков и поддержанных Google, fastlane сэкономит вам много времени, автоматизируя множество ваших ежедневных и еженедельных задач.

В этом уроке мы рассмотрим две очень популярные функции fastlane: подписывание кода и упаковка / распространение приложений.

В этом руководстве вы познакомитесь с набором инструментов fastlane и узнаете, как использовать этот инструмент для автоматизации и оптимизации рабочего процесса разработки под iOS. Ты выучишь:

  • основы начала работы с Fastlane
  • код подписи вашего приложения
  • упаковка и распространение вашего приложения

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

Инструментарий fastlane по сути написан на Ruby и соединяется с Apple Developer Center и iTunes Connect API через библиотеку Ruby космического корабля, обеспечивая надежную аутентификацию и авторизацию пользователей. Он работает вокруг создания файла конфигурации, называемого Fastfile, который вы можете рассматривать как файл рецепта, в котором вы задаете действия, которые вы хотите выполнить при создании приложения. Эти действия организованы в «дорожки». Например, вы должны настроить полосу для развертывания в App Store, а другую полосу — для распространения в TestFlight . Переулок может состоять из следующих отдельных действий:

  1. строим свой проект
  2. увеличение номера сборки
  3. выполнение юнит-тестов
  4. отправка вашего .ipa в TestFlight
  5. отправив сообщение Slack вашей команде

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

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

Убедитесь, что у вас установлена ​​последняя версия Xcode. Вам также необходимо установить Xcode Tools в вашей системе. Вы можете проверить, установлены ли Xcode Tools, введя в терминале следующее:

1
xcode-select -p

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

1
$ /Applications/Xcode.app/Contents/Developer

В противном случае, давайте получим последнюю версию инструментов командной строки Xcode, набрав в терминале следующее:

1
xcode-select —install

Вы должны получить приглашение, подобное следующему:

командная строка gcc

Далее вам нужно будет установить Homebrew . Homebrew — это мощный менеджер пакетов, который позволяет вам устанавливать сотни инструментов с открытым исходным кодом, в том числе и fastlane. Чтобы установить Homebrew, введите в командной строке следующее:

1
/usr/bin/ruby -e «$(curl -fsSL https://raw.githubusercontent.com/

Как только Homebrew настроен, вы можете установить fastlane, введя:

1
brew cask install fastlane

Обратите внимание, что если вы предпочитаете не устанавливать Homebrew, вы можете установить fastlane непосредственно в терминале через ruby, введя следующее:

1
sudo gem install fastlane -NV

Чтобы убедиться, что fastlane установлен и готов к работе в вашей системе, введите в терминале следующую команду для инициализации нового файла конфигурации fastlane:

1
fastlane init

Вам будет предложено ввести свой Apple ID, чтобы fastlane мог без проблем подключиться к iTunes Connect. Заполните любые другие вопросы, и вы увидите новый подкаталог / fastlane, созданный для вас. В первую очередь вас будет интересовать файл конфигурации / fastlane / Fastfile , в котором вы будете координировать все свои действия fastlane.

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

Одна из самых популярных функций fastlane как инструментальной цепи — это возможность автоматически подписывать свои приложения с помощью кода, избегая необходимости иметь дело с сертификатами и профилями обеспечения. Это может быть много работы, и, кроме того, когда вы меняете машины или на борту нового члена команды, вам придется делать это снова и снова. Fastlane предоставляет три действия, которые помогут вам управлять подписанием кода: cert , sigh и match .

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

sigh создает соответствующий профиль обеспечения для вашего сертификата для разработки, Ad Hoc или App Store. Как и cert, sigh гарантирует, что этот профиль обеспечения остается текущим, извлеченным и установленным в цепочку для ключей. Вместе они образуют пару для подписи кода для вашего приложения. Но прежде чем вы научитесь пользоваться сертификатами и вздохами, я хочу представить еще одно связанное действие: матч .

Функция match сочетает в себе два предыдущих действия, но позволяет вам безопасно и конфиденциально передавать личность подписывающего код вашей команде или нескольким компьютерам через ваш собственный репозиторий GitHub, создавая все необходимые сертификаты и профили, чтобы новые участники могли получить эти учетные данные простым вызов скоростного командного match . Для получения дополнительной информации о концепции соответствия см. Новый подход к руководству по подписыванию кода .

Чтобы начать использовать cert, выполните следующую команду:

1
fastlane cert

Точно так же, чтобы запустить вздох

1
fastlane sigh

Если вы хотите увидеть список параметров, которые предоставляет cert или sigh, вы можете сделать это с помощью следующих команд:

1
2
3
fastlane action cert
fastlane action sigh

Помимо выполнения этих команд ad hoc, вы можете включить одно или оба действия как часть вашего автоматизированного рабочего процесса в файл конфигурации Fastfile, который я упоминал ранее:

1
2
3
4
lane :TestApp do
  cert # or the alias get_certificates
  sigh # or the alias get_provisioning_profile
end

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

1
fastlane TestApp

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

Следующие два действия, о которых вы узнаете, — это тренажерный зал и доставка , которую вы будете использовать для сборки, упаковки и распространения своего приложения в TestFlight или App Store. gym создает и упаковывает ваше приложение с помощью единой командной строки, создавая подписанный файл ipa для вас.

Автоматизировав это как часть вашего Fastfile, вы можете запускать сборку и упаковку с помощью непрерывного рабочего процесса интеграции и ежедневно или ежечасно предоставлять пользователям последнюю версию своего приложения. Чтобы упаковать свое приложение через fastlane, вы можете просто запустить:

1
fastlane gym

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

1
fastlane gym —workspace «YourApp.xcworkspace» —scheme «AppSchemeName»

Так же, как Fastfile , fastlane предоставляет удобный файл конфигурации, называемый Gymfile, в котором вы можете хранить все свои специфичные для сборки команды, такие как ваше рабочее пространство, схемы и т. Д., Избавляя вас от необходимости вводить их каждый раз или представлять в конфигурации Fastfile. файл. Чтобы создать новый Gymfile , просто введите следующее:

1
fastlane gym init

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

Далее, доставить занимает место, где спортзал остановился, распространяя ваш файл .ipa без необходимости проходить через Xcode. Как партнер в тренажерном зале, служба доставки не только способна доставлять ваш двоичный файл .ipa, но и загружать ваши скриншоты и метаданные в iTunes Connect для вас, а также отправлять ваше приложение в App Store.

Действие также может загрузить ваши существующие скриншоты и метаданные из iTunes Connect. Самая простая команда действия должна вызвать:

1
fastlane deliver init

Конечным результатом является папка метаданных и снимков экрана вместе с файлом конфигурации Deliverfile , который похож на Gymfile и Fastfile .

Подпапки метаданных и снимки экрана, созданные для вас при доставке

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

1
fastlane deliver

Чтобы отправить приложение на рассмотрение, добавьте следующие параметры:

1
fastlane deliver —ipa «App.ipa» —submit_for_review

Чтобы загрузить метаданные или снимки экрана, добавьте следующие параметры соответственно:

1
2
3
fastlane deliver download_metadata
fastlane deliver download_screenshots

Вы можете изменить свои скриншоты в подпапке / screenshots , но fastlane предоставляет другое действие, которое может автоматизировать процесс создания скриншотов для вас. Хотя скриншоты выходят за рамки этой статьи, вы можете узнать об этом в следующей статье Fastlane.

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

1
lane :TestApp do cert sigh gym(scheme: «AppSchemeName», workspace: «YourApp.xcworkspace») # alias for «build_ios_app» slack end

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

От создания локализованных скриншотов до его глубокой интеграции с известными инструментами, такими как Jenkins CI, Git, Crashlytics, HockeyApp и Slack, fastlane так же важен, как CocoaPods, для вашего инструментария разработки iOS. Он имеет мощное сообщество сторонних плагинов, а также поддерживается Google.

Вы также можете узнать все об искусстве непрерывной доставки и fastlane в моей книге « Непрерывная доставка для мобильных устройств с помощью fastlane» , доступной в Packt Publishing.

Непрерывная доставка для мобильных с Fastlane

И пока вы здесь, ознакомьтесь с некоторыми другими нашими публикациями по разработке приложений для iOS!

  • Мобильная разработка
    Как отправить приложение iOS в App Store
    Вардхан Агравал
  • iOS SDK
    Передача данных между контроллерами в Swift
    Франческо Франкини
  • IOS
    iOS с нуля с Swift: изучение контроллеров панели вкладок
    Барт Джейкобс