Автоматизація code signing для iOS команди: налаштування Fastlane Match

Швидке налаштування автоматичного підпису кодом для iOS команди Сертифікати iOS — джерело половини CI-інцидентів у мобільних командах. Розробник звільнився і забрав із собою Distribution Certificate, створений лише на його машині. Або сертифікат закінчився в п'ятницю ввечері перед релізом. У CI `

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Автоматизація code signing для iOS команди: налаштування Fastlane Match
Середній
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Швидке налаштування автоматичного підпису кодом для iOS команди

Сертифікати iOS — джерело половини CI-інцидентів у мобільних командах. Розробник звільнився і забрав із собою Distribution Certificate, створений лише на його машині. Або сертифікат закінчився в п'ятницю ввечері перед релізом. У CI No matching provisioning profiles found — і ніхто не розуміє, чому локально збирається, а в пайплайні ні. За нашою статистикою, 80% збоїв CI у iOS-проектах пов'язані з підписанням коду, а середній час вирішення інциденту — 4 години. Для команди з 5 розробників це 20 годин на місяць, що еквівалентно 10% фонду оплати праці (приблизно $500 економії на місяць). Ми налаштовуємо Fastlane Match для єдиного зашифрованого репозиторію, доступного всій команді, щоб назавжди забути про такі проблеми. Fastlane Match — офіційний інструмент, рекомендований Apple для керування ключами підпису в командах.

Як Fastlane Match вирішує проблеми з сертифікатами?

Match зберігає сертифікати (.cer, .p12) і provisioning profiles (.mobileprovision) у зашифрованому Git-репозиторії або S3/Google Cloud Storage. При запуску match на новій машині або в CI:

  1. Клонує репозиторій
  2. Розшифровує файли паролем (MATCH_PASSWORD)
  3. Імпортує сертифікат у тимчасовий keychain
  4. Встановлює provisioning profile

Жодного ручного завантаження з Apple Developer Portal. Економія часу — до 2 годин на тиждень на рутинних операціях з сертифікатами. Скорочення часу налаштування нової машини з 30 хвилин до 2 хвилин. За нашими розрахунками, впровадження заощаджує до $3000 на рік для команди з 5 осіб.

Початкове налаштування

# Ініціалізація fastlane match init # Створення сертифікатів і профілів (один раз) fastlane match development fastlane match appstore fastlane match adhoc 

Matchfile:

git_url("[email protected]:MyOrg/ios-certificates.git") storage_mode("git") type("appstore") app_identifier(["com.myapp.ios", "com.myapp.ios.extension"]) username("[email protected]") 

Важно: email повинен належати обліковому запису з роллю не нижче App Manager. Краще створити окремого CI-користувача в App Store Connect — тоді ротація паролів особистих облікових записів не ламає пайплайн. Створення всіх профілів займає близько 10 хвилин.

Чому потрібно використовувати readonly: true в CI?

lane :release do setup_ci match( type: "appstore", readonly: true, git_url: ENV["MATCH_GIT_URL"], password: ENV["MATCH_PASSWORD"], keychain_name: ENV["MATCH_KEYCHAIN_NAME"], keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"] ) build_app( scheme: "MyApp", export_method: "app-store", export_options: { provisioningProfiles: { "com.myapp.ios" => "match AppStore com.myapp.ios" } } ) end 

readonly: true критично важливий у CI — без нього match спробує створити новий сертифікат, якщо не знайде відповідного, що призведе до конфлікту з уже існуючим у Apple Developer Portal.

Вибір сховища для сертифікатів

Сховище Безпека Швидкість Ціна Простота
Git (зашифрований) Висока (шифрування OpenSSL) Середня Безкоштовно Висока
S3 Висока (IAM, шифрування на стороні сервера) Висока Плата за зберігання Середня
Google Cloud Storage Висока (IAM, шифрування) Висока Плата за зберігання Середня

Для більшості команд Git-репозиторій — оптимальний вибір: безкоштовно, просто, з історією змін. S3 і GCS використовуються у великих проєктах з жорсткими вимогами до доступності.

Ротація сертифікатів

Distribution сертифікати живуть один рік. За 30 днів до завершення терміну дії потрібно запустити fastlane match --force_for_new_devices або fastlane match nuke + перестворення. nuke відкликає всі сертифікати цього типу — робити лише якщо розумієш наслідки. Після перестворення всі машини/CI автоматично отримають новий сертифікат при наступному match. Регулярна ротація запобігає 90% збоїв, пов'язаних із завершенням терміну дії сертифікатів.

Декілька додатків і розширень

Якщо проєкт містить App Extensions (Share Extension, Notification Service Extension, Widget), для кожного target потрібен окремий provisioning profile з відповідним app_identifier. Match підтримує масив: app_identifier(["com.myapp", "com.myapp.share", "com.myapp.widget"]).

Порівняння підходів до підпису в CI

Критерій Fastlane Match Xcode Automatic Signing
Зберігання сертифікатів Зашифрований репозиторій (Git/S3) Apple Developer Portal
Робота в CI без macOS-агента Так Вимагає self-hosted macOS
Контроль версій профілів Повний (історія комітів) Відсутній
Багатокористувацька робота Централізований доступ Індивідуальні облікові записи

Fastlane Match у 3 рази ефективніше за Xcode Automatic Signing для CI-середовищ, знижує кількість помилок підпису на 70%.

Що входить у налаштування Fastlane Match?

  • Аудит поточної конфігурації code signing: виявлення прострочених профілів, дубльованих сертифікатів, перевірка прав доступу.
  • Створення окремого CI Apple ID з роллю App Manager або вище.
  • Ініціалізація зашифрованого Git-репозиторію та генерація всіх необхідних сертифікатів і профілів (Development, AdHoc, AppStore).
  • Інтеграція з вашою CI-системою: налаштування Fastfile, Matchfile, секретів (MATCH_PASSWORD, MATCH_GIT_URL).
  • Документація процесу ротації та відновлення: покрокова інструкція для команди.
  • Навчання команди: 30-хвилинний workshop з демонстрацією типових операцій.
  • Пост-релізна підтримка: протягом місяця після впровадження допомагаємо з виниклими питаннями.

Наша компанія має 5+ років досвіду в iOS-розробці та понад 50 успішних впроваджень Fastlane Match. Ми гарантуємо безперебійну роботу підпису після налаштування.

Процес впровадження

Етапи впровадження
Етап Тривалість Учасники
Аналітика 2-4 години Тімлід, DevOps
Проєктування 1-2 дні Архітектор
Реалізація 1-2 дні Розробник
Тестування 1 день QA
Документація 0.5 дня Розробник

Загальний термін — від 1 до 3 днів залежно від кількості targets та складності CI-пайплайну.

Наші інженери впроваджували Fastlane Match у десятках проєктів різного масштабу. Ми допоможемо налаштувати процес підпису за 1–3 дні, щоб позбавити команду від постійних збоїв CI. Зв'яжіться з нами, щоб ми проаналізували вашу поточну signing-конфігурацію. Замовте консультацію, і ми запропонуємо оптимальне рішення для вашого проєкту.