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