Вступление
Разработчикам iOS посчастливилось наслаждаться и работать с надежной платформой разработки, предоставленной Apple, в первую очередь с Xcode. Это помогло вдохновить привлекательные и мощные приложения, которыми сегодня пользуются пользователи в App Store. Xcode предоставляет интуитивно понятную среду разработки, и это, в сочетании с появлением Swift как действительно современного языка программирования, сделало программирование на платформе настоящим удовольствием.
Однако, хотя аспект разработки рабочего процесса является связным, рабочий процесс выходит из строя, когда речь идет о рутинной работе, связанной с подписанием кода и распространением приложений. Это была давняя проблема для платформы, и хотя она постепенно улучшалась, она все еще является узким местом почти для всех разработчиков. Это во многих отношениях сдерживало постоянную доставку приложений, то есть необходимость ручной сборки и распространения приложений ежедневно внутри и снаружи подвержена ошибкам и трудоемка.
Вот где приходит fastlane. Набор инструментов fastlane значительно упрощает распространение приложений, позволяя разработчикам сосредоточиться на своих приложениях и позволяя инструментам выполнять такие задачи, как управление профилями обеспечения и сертификатами, а также сборка, упаковка и распространение приложений. Одним из наборов инструментов fastlane является автоматизированное готовое решение для непрерывной доставки на стороне клиента, которое разработчики iOS могут использовать для обеспечения непрерывного тестирования и валидации своих приложений другими пользователями с минимальным вмешательством человека.
Разработанный Феликсом Краузе ( @krausefx ), fastlane состоит из набора инструментов с открытым исходным кодом, который объединяет автоматизацию создания и развертывания приложений iOS с помощью командной строки, а также интеграцию с различными сторонними библиотеками в дополнение к собственным API-интерфейсам Apple. , Являясь культовым набором инструментов для iOS-разработчиков и поддержанных Google, fastlane сэкономит вам много времени, автоматизируя множество ваших ежедневных и еженедельных задач.
В этом уроке мы рассмотрим две очень популярные функции fastlane: подписывание кода и упаковка / распространение приложений.
Цели этого урока
В этом руководстве вы познакомитесь с набором инструментов fastlane и узнаете, как использовать этот инструмент для автоматизации и оптимизации рабочего процесса разработки под iOS. Ты выучишь:
- основы начала работы с Fastlane
- код подписи вашего приложения
- упаковка и распространение вашего приложения
Предполагаемые знания
В этом руководстве предполагается, что вы обладаете практическими знаниями в области разработки Swift и iOS, хотя в этом руководстве вы не будете заниматься программированием Swift. Вы будете использовать командную строку для создания и запуска команд fastlane.
Начало работы с fastlane
Инструментарий fastlane по сути написан на Ruby и соединяется с Apple Developer Center и iTunes Connect API через библиотеку Ruby космического корабля, обеспечивая надежную аутентификацию и авторизацию пользователей. Он работает вокруг создания файла конфигурации, называемого Fastfile, который вы можете рассматривать как файл рецепта, в котором вы задаете действия, которые вы хотите выполнить при создании приложения. Эти действия организованы в «дорожки». Например, вы должны настроить полосу для развертывания в App Store, а другую полосу — для распространения в TestFlight . Переулок может состоять из следующих отдельных действий:
- строим свой проект
- увеличение номера сборки
- выполнение юнит-тестов
- отправка вашего .ipa в TestFlight
- отправив сообщение Slack вашей команде
Вы можете думать о дорожках как о функциях, которые группируют связанные задачи. Вы можете даже вызывать методы переулков из другого, чтобы далее разъединить и повторно использовать свои переулки.
Но прежде чем мы углубимся в действия fastlane, вам нужно настроить свою среду на использование fastlane.
Настройка fastlane
Убедитесь, что у вас установлена последняя версия Xcode. Вам также необходимо установить Xcode Tools в вашей системе. Вы можете проверить, установлены ли Xcode Tools, введя в терминале следующее:
1
|
xcode-select -p
|
Если вы получите полный путь к папке с разработчиком, то вы готовы к работе. Вы должны увидеть что-то вроде следующего.
1
|
$ /Applications/Xcode.app/Contents/Developer
|
В противном случае, давайте получим последнюю версию инструментов командной строки Xcode, набрав в терминале следующее:
1
|
xcode-select —install
|
Вы должны получить приглашение, подобное следующему:
Далее вам нужно будет установить 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.
И пока вы здесь, ознакомьтесь с некоторыми другими нашими публикациями по разработке приложений для iOS!