В предыдущей статье мы рассмотрели, как организовать самый простой CI/CD для сборки под Android через Codemagic.
Сегодня рассмотрим, как сделать похожее для iOS. Я также приведу небольшие хитрости, которыми иногда можно пользоваться, но с большой осторожностью.
Настройка Codemagic для iOS. Релизная сборка с подписью
Если сравнивать с аналогичной задачей в Андроид, то тут все выглядит в тысячу раз сложнее. Напомню, что для подписи сборки, которую можно отправить на проверку в AppStore, необходимы:
сертификат с расширением .p12 и пароль к нему. Тут важно, чтобы сертификат был для Distribution или iOS Distribution
профайл с расширением .mobileprovision с аналогичным правом на App Store Connect Distribution
Сертификат .p12
Разработчик. Предварительно ему нужно сделать на своем компьютере signingRequest.
Для этого открыть Keychain Access
Создать реквест "Request a Certificate From a Certificate Authority..." и сохранить на диск, как показано на скриншотах.
Получится такой файл
Внимание! Следующие шаги может сделать только владелец аккаунта в App Store Connect, если он зарегистрирован в Apple Developer Program как Individual.
Открыть Certificates, Identifiers & Profiles, раздел Certificates и нажать на плюс
Выбрать либо Apple Distribution, либо iOS Distribution (только для iOS)
Загрузить созданный ранее реквест файл
Скачать и отправить файл разработчику, от которого получен реквест
Получится такой файл
Разработчик. У себя на MacOS он должен открыть ios_distribution.cer, примерно будет такой вид
Сделать экспорт
Рекомендую создавать пароль
Должен получиться такой файл
Оставляем его на будущее
Профайл .mobileProvision
Владелец аккаунта в App Store Connect должен открыть Certificates, Identifiers & Profiles, раздел Profiles и нажать на плюс
Выбрать App Store Connect в разделе Distribution
Выбрать, для какого приложения нужен профайл
Выбрать ранее созданный сертификат
Придумать название, скачать и отправить разработчику
Разработчик должен получить примерно такой файл
При добавлении какой-то новой фичи, которой ранее не было в приложении, например, в покупки внутри приложения, нужно будет создавать новый профайл!
Codemagic
Теперь имеются сертификат .p12 и профайл .mobileProvision, которые можно добавить в Codemagic. Делается теперь все очень просто
Раскрываем секцию iOS code signing
Выбираем метод Manual, загружаем файлы и вводим пароль от сертификата
После сохранения должно получиться примерно так
После запуска сборки под iOS и успешного завершения должно получиться это:
Также можно скачать артефакты и вручную отправить их по месту назначения.
Настройка Codemagic для iOS. Автоматическая отправка в App Store Connect
В отличие от Андроид с настройкой Google Cloud Console, здесь всё проще, чем могло показаться после истории с подписью.
Здесь также требуются действия владельца аккаунта AppStoreConnect!
Сначала нужно открыть Users and Access, раздел Integrations (ссылка) и нажать на плюс, чтобы создать новый ключ
Необходимо дать этому ключу уровень доступа как минимум App Manager
Ключ можно скачать только один раз. Также на этой странице следует сохранить Issuer ID и Key ID, чтобы использовать потом
Скаченный файл выглядит так:
Его нужно отправить разработчику.
Следующие шаги может уже выполнять разработчик:
Раскрываем секцию App Store Connect. Должен быть примерно такой вид
Заполняем необходимые поля, загружаем файл и придумываем запоминающееся название
Выбираем созданный ключ в секции App Store Connect
Если все настроено верно, то после запуска сборки под iOS будет такой результат:
А в TestFlight вот такой:
Про ограничения 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:
Подготовить все необходимые файлы для разработчика
Достаточно один раз создать все необходимые файлы и скидывать разработчикам при необходимости, чтобы не выполнять все эти действия повторно.
Но это тоже нужно делать с большой осторожностью, чтобы никто лишний не мог получить доступы к аккаунтам или каким-либо важным ресурсам.
Если понравился материал, поставьте ⬆️, чтобы я понимал, что тема интересна и писал больше подобных статей