Как стать автором
Обновить

Самый простой CI/CD пайплайн для flutter приложения с Codemagic. Часть 2

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1K

В предыдущей статье мы рассмотрели, как организовать самый простой CI/CD для сборки под Android через Codemagic.

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


Настройка Codemagic для iOS. Релизная сборка с подписью

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

  • сертификат с расширением .p12 и пароль к нему. Тут важно, чтобы сертификат был для Distribution или iOS Distribution

  • профайл с расширением .mobileprovision с аналогичным правом на App Store Connect Distribution

Сертификат .p12

Разработчик. Предварительно ему нужно сделать на своем компьютере signingRequest.

  • Для этого открыть Keychain Access

MacOS
MacOS
  • Создать реквест "Request a Certificate From a Certificate Authority..." и сохранить на диск, как показано на скриншотах.

MacOS
MacOS
MacOS
MacOS
  • Получится такой файл

MacOS
MacOS

Внимание! Следующие шаги может сделать только владелец аккаунта в App Store Connect, если он зарегистрирован в Apple Developer Program как Individual.

Developer Apple
Developer Apple
  • Выбрать либо Apple Distribution, либо iOS Distribution (только для iOS)

Developer Apple
Developer Apple
  • Загрузить созданный ранее реквест файл

Developer Apple
Developer Apple
  • Скачать и отправить файл разработчику, от которого получен реквест

Developer Apple
Developer Apple
  • Получится такой файл

MacOS
MacOS

Разработчик. У себя на MacOS он должен открыть ios_distribution.cer, примерно будет такой вид

MacOS
MacOS
  • Сделать экспорт

MacOS
MacOS
MacOS
MacOS
  • Рекомендую создавать пароль

MacOS
MacOS
  • Должен получиться такой файл

MacOS
MacOS

Оставляем его на будущее

Профайл .mobileProvision

Владелец аккаунта в App Store Connect должен открыть Certificates, Identifiers & Profiles, раздел Profiles и нажать на плюс

Developer Apple
Developer Apple
  • Выбрать App Store Connect в разделе Distribution

Developer Apple
Developer Apple
  • Выбрать, для какого приложения нужен профайл

Developer Apple
Developer Apple
  • Выбрать ранее созданный сертификат

Developer Apple
Developer Apple
  • Придумать название, скачать и отправить разработчику

Developer Apple
Developer Apple
Developer Apple
Developer Apple
  • Разработчик должен получить примерно такой файл

MacOS
MacOS

При добавлении какой-то новой фичи, которой ранее не было в приложении, например, в покупки внутри приложения, нужно будет создавать новый профайл!

Codemagic

Теперь имеются сертификат .p12 и профайл .mobileProvision, которые можно добавить в Codemagic. Делается теперь все очень просто

  • Раскрываем секцию iOS code signing

codemagic.io
codemagic.io
  • Выбираем метод Manual, загружаем файлы и вводим пароль от сертификата

codemagic.io
codemagic.io
codemagic.io
codemagic.io
  • После сохранения должно получиться примерно так

codemagic.io
codemagic.io

После запуска сборки под iOS и успешного завершения должно получиться это:

codemagic.io
codemagic.io

Также можно скачать артефакты и вручную отправить их по месту назначения.

Настройка Codemagic для iOS. Автоматическая отправка в App Store Connect

В отличие от Андроид с настройкой Google Cloud Console, здесь всё проще, чем могло показаться после истории с подписью.

Здесь также требуются действия владельца аккаунта AppStoreConnect!

  • Сначала нужно открыть Users and Access, раздел Integrations (ссылка) и нажать на плюс, чтобы создать новый ключ

App Store Connect
App Store Connect
  • Необходимо дать этому ключу уровень доступа как минимум App Manager

App Store Connect
App Store Connect
  • Ключ можно скачать только один раз. Также на этой странице следует сохранить Issuer ID и Key ID, чтобы использовать потом

App Store Connect
App Store Connect
  • Скаченный файл выглядит так:

MacOS
MacOS

Его нужно отправить разработчику.

Следующие шаги может уже выполнять разработчик:

  • Раскрываем секцию App Store Connect. Должен быть примерно такой вид

codemagic.io
codemagic.io
codemagic.io
codemagic.io
  • Заполняем необходимые поля, загружаем файл и придумываем запоминающееся название

codemagic.io
codemagic.io
  • Выбираем созданный ключ в секции App Store Connect

codemagic.io
codemagic.io

Если все настроено верно, то после запуска сборки под iOS будет такой результат:

codemagic.io
codemagic.io

А в TestFlight вот такой:

App Store Connect
App Store Connect

Про ограничения Codemagic

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

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

Заключение

Сегодня детально рассмотрели, как организовать CI/CD для сборки и публикации flutter приложения в App Store Connect с помощью сервиса Codemagic.

Кратко, что требуется разработчику для настройки под iOS:

  • Сертификат .p12, пароль к нему и профайл .mobileprovision - для подписи сборки

  • App Store Connect API Key .p8, Issuer ID и Key ID - для публикации в App Store Connect (TestFlight)

Что требуется сделать владельцу аккаунта в App Store Connect:

  • Подготовить все необходимые файлы для разработчика

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

Если понравился материал, поставьте ⬆️, чтобы я понимал, что тема интересна и писал больше подобных статей

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Рейтинг0
Комментарии0

Публикации

Истории

Работа

Swift разработчик
36 вакансий
iOS разработчик
29 вакансий

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург