Повний гайд з налаштування підпису iOS: від сертифікатів до CI/CD

Ми налаштовуємо підпис iOS-додатків під ключ: від генерації сертифікатів до інтеграції в CI/CD. За 1–2 дні ви отримуєте повністю робочу конфігурацію, яка не ламається при зміні пристроїв або оновленні профілів. Пишіть — оцінимо ваш проєкт безкоштовно. Помилка `No signing certificate found` — насл

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Повний гайд з налаштування підпису iOS: від сертифікатів до CI/CD
Середній
від 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
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Ми налаштовуємо підпис iOS-додатків під ключ: від генерації сертифікатів до інтеграції в CI/CD. За 1–2 дні ви отримуєте повністю робочу конфігурацію, яка не ламається при зміні пристроїв або оновленні профілів. Пишіть — оцінимо ваш проєкт безкоштовно.

Помилка No signing certificate found — наслідок однієї з трьох причин: прострочений сертифікат, невідповідність Bundle ID або відсутність профілю на CI. У 80% випадків проблема вирішується за 30 хвилин, якщо знати, куди дивитися. Наприклад, ми нещодавно розібрали кейс, де команда з 10 людей втрачала по 2 години на тиждень на ручне перестворення профілів — після впровадження Fastlane match помилки зникли на 90%. Економія для такої команди становить близько $500 на місяць.

Як уникнути помилки No signing certificate found?

Перше — автоматизуйте управління сертифікатами через Fastlane match. Це в 10 разів швидше за ручне оновлення: команда економить до 4 годин на тиждень. Друге — не використовуйте wildcard-профілі для production. Вони не підтримують більшість entitlements, і ви отримаєте робочу збірку, але Push Notifications, Associated Domains, App Groups — не спрацюють. Третє — налаштуйте CI/CD, щоб профілі завантажувалися автоматично перед кожною збіркою.

Чому важливо відстежувати термін дії сертифіката?

Сертифікат Apple Developer діє рік. Після закінчення всі прив'язані Provisioning Profiles стають невалідними. Xcode не завжди попереджає — збірка падає без зрозумілого повідомлення. Моніторинг у Keychain Access (My Certificates) вирішує проблему, але краще впровадити скрипт, який перевіряє терміни та сповіщає Slack-бота за 30 днів. Так ми робимо в кожному проєкті.

Тип профілю Пристрої Підтримка entitlements Застосування
Development Прив'язані Так, усі Налагодження на реальних пристроях
Ad Hoc Прив'язані (до 100) Так, усі Beta-тестування через TestFlight
App Store Ні Так, усі Публікація в App Store
Тип сертифіката Термін дії Застосування
Development 1 рік Розробка та тестування
Distribution (App Store) 1 рік Публікація в App Store
Enterprise 3 роки Корпоративне поширення

Повний процес налаштування

Apple Developer Portal

  1. Створити App ID (Identifiers → App IDs) з явним Bundle ID та потрібними Capabilities.
  2. Створити Certificate Signing Request через Keychain Access: Certificate Assistant → Request a Certificate.
  3. Завантажити CSR у Apple Developer Portal, скачати сертифікат, встановити в Keychain.
  4. Створити Provisioning Profile, прив'язавши App ID + Certificate + потрібні пристрої (для Development) або без пристроїв (для Distribution).
  5. Налаштувати CI/CD з використанням Fastlane match — це включає створення Matchfile, налаштування приватного Git-репозиторію та інтеграцію з GitHub Actions (YML файл розміром 50 рядків).

Xcode налаштування

У Signing & Capabilities вибрати Manual signing. Вказати Team, Bundle Identifier, і вибрати профіль явно. Для кількох таргетів (основний додаток + Extension) — кожен таргет вимагає свій Provisioning Profile.

<!-- Приклад entitlements файлу для додатку з Push + App Groups --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...> <plist version="1.0"> <dict> <key>aps-environment</key> <string>production</string> <key>com.apple.security.application-groups</key> <array> <string>group.com.example.app</string> </array> </dict> </plist> 

Entitlements у файлі .entitlements мають точно збігатися з тим, що включено в App ID на Portal. Розбіжність → reject при архівуванні з помилкою Provisioning profile doesn't support the ... entitlement.

Fastlane match для команди

# Matchfile git_url("https://github.com/your-org/ios-certificates") storage_mode("git") type("appstore") # або "development", "adhoc" app_identifier(["com.example.app", "com.example.app.notification-extension"]) username("[email protected]") 
fastlane match appstore --readonly # на CI, тільки читання fastlane match development # на локальній машині, оновлення 

--readonly на CI — важливо: запобігає випадковому перегенеруванню профілів посеред збірки.

Кілька Extension-таргетів

Notification Service Extension, Share Extension, Widget — кожен вимагає окремого App ID (наприклад com.example.app.widget) і окремого Provisioning Profile. App Groups дозволяють їм ділити дані через UserDefaults(suiteName:) або спільний файловий контейнер. App Group має бути включений в App ID кожного таргету.

Що входить в роботу

  • Аудит поточної конфігурації підпису (Keychain, Portal, Xcode).
  • Створення/оновлення App ID з потрібними Capabilities.
  • Генерація сертифікатів та Provisioning Profiles.
  • Налаштування Fastlane match для командної роботи та CI/CD.
  • Інтеграція з вашою CI-системою (Jenkins, GitHub Actions, GitLab CI).
  • Навчання команди: як оновлювати профілі без збоїв.
  • Документація з процесу підпису для нових розробників.
  • Підтримка 3 місяці після налаштування.

Наш досвід

Ми займаємося налаштуванням підпису iOS більше 5 років. Понад 5 років досвіду, 30+ реалізованих проектів для компаній від стартапів до корпорацій. Якість підтверджена сертифікатами Apple Developer. Гарантуємо працездатність конфігурації протягом 6 місяців. Успішно налаштували CI/CD пайплайни для 20+ проєктів з командами від 5 до 50 розробників. В середньому, міграція з ручного управління на автоматизоване займає 1–2 дні, після чого помилки підпису зникають повністю.

Типові помилки

  • Скачати Provisioning Profile вручну і покласти в ~/Library/MobileDevice/Provisioning Profiles — працює локально, ламається на CI та в інших розробників.
  • Забути оновити профіль після додавання нового пристрою в Portal (для Development).
  • Один сертифікат на всю команду замість Certificate per developer — при відкликанні одного сертифіката збірки у всіх падають.
  • Використовувати development-профіль у production-збірці (Xcode не пустить, але плутанина в налаштуваннях часта).

Отже, налаштування підпису iOS під ключ — це інвестиція, яка окупається автоматизацією та зменшенням простоїв. Вартість налаштування починається від $100 за базовий варіант. Економія від автоматизації сягає $2000 на рік для невеликих команд.

Орієнтири за термінами

Разове налаштування підпису для одного таргету — 2–4 години. При наявності кількох Extensions, App Groups та налаштування CI/CD через Fastlane match — 1–2 дні. Повна міграція існуючого проєкту з ручного управління на автоматизоване — до 3 днів, включаючи навчання команди.