Match (Fastlane): co to je, správa certifikátů a konfigurace ve vývoji

Autor: IT Sectr Publikováno: 2026-04-14 Doba čtení: 10 min

Match (Fastlane) — je nástroj pro správu Code Signing certifikátů a Provisioning Profiles pro iOS, který je ukládá v šifrovaném Git úložišti. Na rozdíl od ruční správy přes Apple Developer Portal automatizuje Match synchronizaci podpisů mezi všemi vývojáři a CI/CD systémy. Podle oficiální dokumentace Fastlane (2026), Match odstraňuje až 90 % chyb spojených s nesprávnými certifikáty při sestavování iOS aplikací.

Hlavní body

  • Match — nástroj Fastlane pro centralizované ukládání a synchronizaci iOS certifikátů a Provisioning Profiles prostřednictvím šifrovaného Git úložiště.
  • Všechny certifikáty jsou šifrovány pomocí OpenSSL před uložením do úložiště, což zajišťuje bezpečnost klíčů i při veřejném přístupu k úložišti.
  • Match podporuje několik typů profilů: development, appstore, adhoc a enterprise — pro různé scénáře sestavování a distribuce.
  • Integrace s CI/CD umožňuje týmům automaticky získávat aktuální certifikáty bez ručního exportu z Apple Developer Portal na každém počítači.
  • Příznak --readonly zabraňuje náhodné změně certifikátů v prostředí CI a zaručuje stabilitu automatického pipeline sestavení.

Co je Match (Fastlane)?

Match (Fastlane) — je součást ekosystému Fastlane určená pro centralizovanou správu Code Signing certifikátů a Provisioning Profiles pro iOS vývoj. Řeší problém synchronizace podpisů mezi členy týmu a automatizuje nastavení certifikátů v CI/CD pipeline bez účasti vývojáře.

Bez Match každý člen týmu ručně generuje certifikáty přes Xcode nebo Apple Developer Portal, což vede ke konfliktům při sestavování na různých počítačích. Code Signing — je proces digitálního podepisování iOS aplikace, který potvrzuje její autorství a integritu před instalací na zařízení uživatele.

Podle Apple Developer Documentation (2025) je nesprávné nastavení certifikátů jedním z nejčastějších důvodů zamítnutí při odesílání aplikace do App Store. Match automaticky kontroluje platnost certifikátů a upozorňuje na blížící se expiraci, čímž snižuje riziko zamítnutí sestavení ve fázi ověřování Apple.

Používejte Match v jakémkoli projektu se dvěma nebo více vývojáři nebo s CI/CD pipelinou — zkrátí čas na nastavení prostředí pro nového člena týmu z 30 minut na jeden příkaz v terminálu.

Jak funguje Match: šifrované Git úložiště

Architektura Match je postavena na konceptu jediného zdroje pravdy pro všechny certifikáty iOS týmu. Místo lokálního ukládání do klíčenky každého vývojáře Match sjednocuje certifikáty v jediném Git úložišti s šifrováním každého souboru před uložením.

Proces se skládá ze tří fází. Ve fázi inicializace Match generuje všechny potřebné certifikáty a profily přes Apple Developer Portal API. Každý soubor je šifrován algoritmem AES-256 s klíčem vytvořeným na základě uživatelské přístupové fráze. Zašifrované soubory jsou uloženy v Git úložišti a synchronizovány se vzdáleným serverem prostřednictvím standardních operací Git push a pull.

Architektura šifrování certifikátů

Match používá kombinaci OpenSSL a uživatelské přístupové fráze pro šifrování certifikátů a profilů. Přístupový klíč se nastavuje přes proměnnou prostředí MATCH_PASSWORD a není uložen v úložišti, což vylučuje únik i při kompromitaci Git serveru nebo veřejném přístupu k úložišti.

Při vyžádání certifikátu Match načte zašifrovaný soubor z úložiště, lokálně jej dešifruje pomocí přístupové fráze a nainstaluje do Keychain aktuálního počítače. Po dokončení sestavení mohou být certifikáty odstraněny z Keychain pro dodržení bezpečnostních politik podnikového prostředí — to zabraňuje použití zastaralých certifikátů v následujících sestaveních.

Každý certifikát je uložen s názvem obsahujícím identifikátor aplikace, typ profilu a datum vytvoření. Tato struktura umožňuje Match spravovat verze certifikátů a v případě potřeby se vrátit k předchozímu stavu pomocí standardních příkazů Git revert a reset. To je užitečné zejména při náhodném smazání nebo přepsání profilu.

Nastavení a konfigurace Match

Instalace Match se provádí společně s Fastlane přes správce balíčků Ruby: gem install fastlane. Po instalaci je třeba inicializovat úložiště certifikátů příkazem fastlane match init, který vytvoří prázdné Git úložiště a vygeneruje soubor Matchfile se šablonou základních nastavení.

bash
# Inicializace Match úložiště
fastlane match init

Konfigurace přes Matchfile

Soubor Matchfile obsahuje všechny parametry připojení k úložišti certifikátů: URL Git úložiště, výchozí typ profilu, identifikátory aplikací a přihlašovací údaje Apple Developer. Příklad typické konfigurace pro tým pěti vývojářů:

ruby
# Matchfile configuration
git_url("https://github.com/company/certificates.git")
type(:development)
app_identifier(["com.company.app", "com.company.app.extension"])
username("developer@company.com")
team_id("TEAM123456")
git_branch("main")

Parametr type určuje typ profilu: :development pro ladění na zařízeních vývojářů, :appstore pro publikování v App Store, :adhoc pro testování na externích zařízeních a :enterprise pro podnikovou distribuci In-House mimo App Store. Každý typ vytváří samostatný adresář v úložišti, což umožňuje organizovat profily podle cílových scénářů sestavení.

Match podporuje několik způsobů autentizace v Apple Developer Portal: dvoufaktorovou autentizaci přes Apple ID, App-Specific Password a API klíče App Store Connect API. Pro CI/CD se doporučuje použití API klíčů — nevyžadují interaktivní zadávání potvrzovacího kódu a neblokují automatická sestavení při změně zařízení vývojáře.

Generování a synchronizace profilů

Po nastavení Matchfile se provede příkaz fastlane match development nebo fastlane match appstore pro generování a synchronizaci profilů. Match automaticky vytváří nebo aktualizuje certifikáty přes Apple Developer Portal API a ukládá je do úložiště. Apple Developer Portal — je webové rozhraní Apple pro správu certifikátů, identifikátorů aplikací a seznamu povolených zařízení vývojářů.

Při prvním spuštění Match vyžádá přístupovou frázi pro šifrování úložiště. Tato fráze musí být uložena ve správci tajemství CI/CD (GitHub Actions Secrets, GitLab CI Variables nebo Jenkins Credentials) a předána přes proměnnou prostředí MATCH_PASSWORD. Bez ní Match nebude schopen dešifrovat certifikáty na jiných počítačích nebo v prostředí CI.

Základní příkazy Match pro správu certifikátů

Rozhraní Match se skládá ze sady příkazů pro vytváření, aktualizaci, synchronizaci a mazání certifikátů a profilů. Každý příkaz odpovídá určité akci v životním cyklu Code Signing: od generování po úplné vyčištění úložiště.

Příkazy pro každodenní práci

Příkaz fastlane match development načítá nebo vytváří Development certifikáty a profily pro ladění na lokálních zařízeních. Provisioning Profile — je digitální dokument Apple, který spojuje certifikát vývojáře s identifikátorem aplikace a seznamem zařízení povolených pro instalaci.

Pro publikování v App Store se používá fastlane match appstore — generuje Distribution certifikáty a AppStore profily. Příkaz fastlane match adhoc vytváří profily pro testování na externích zařízeních a fastlane match enterprise — pro podnikové aplikace In-House.

bash
# Vytvoření Development profilů pro ladění
fastlane match development

# Vytvoření AppStore profilů pro vydání
fastlane match appstore

# Import existujících ručně vytvořených certifikátů
fastlane match import

Příkaz fastlane match import umožňuje přidat do úložiště již existující certifikáty — užitečné při migraci z ruční správy na Match. Parametr --readonly blokuje jakékoli změny v úložišti, což je kritické pro prostředí CI, kde pipeline nesmí automaticky vytvářet nebo mazat certifikáty a profily.

Příkaz MatchÚčelTyp profilu
match developmentVytvoření Development profilů pro ladění na zařízeníchDevelopment
match appstoreVytvoření profilů pro publikování v App StoreAppStore
match adhocProfily pro externí testování na zařízeních beta testerůAdHoc
match enterprisePodnikové profily pro In-House distribuciEnterprise
match importImport dříve vytvořených certifikátů do úložištěJakýkoli

Pro úplné vyčištění úložiště se používá příkaz fastlane match nuke. Odstraňuje všechny certifikáty z Git úložiště, Apple Developer Portal a lokálního počítače — úplný reset stavu Code Signing pro projekt. Příkaz se aplikuje pouze při kritických konfliktech nebo při přechodu na nový účet Apple Developer.

Integrace Match do CI/CD pipeline

CI/CD integrace Match — jedna z klíčových výhod nástroje. V pipeline GitHub Actions, GitLab CI, Bitrise nebo Jenkins Match automaticky načítá a instaluje správné certifikáty bez účasti vývojáře. To umožňuje plně automatizované sestavení a podepisování iOS aplikace od commitu po hotový IPA soubor.

Typická konfigurace pro GitHub Actions zahrnuje instalaci Fastlane, nastavení proměnné MATCH_PASSWORD a spuštění Match s příznakem --readonly. GitHub Actions — je CI/CD platforma od GitHub, která automatizuje sestavování, testování a publikování kódu na základě událostí v úložišti.

bash
# Instalace Fastlane v CI prostředí
gem install fastlane --no-document

# Spuštění Match v režimu read-only bez práva na změny
fastlane match development --readonly

Před spuštěním Match v CI je třeba nakonfigurovat přístup k úložišti certifikátů. Fastlane automaticky klonuje úložiště na základě parametru git_url z Matchfile. Přístup k úložišti se konfiguruje přes SSH klíč nebo personal access token, které se přidají do tajemství CI systému — to zaručuje, že certifikáty nebudou kompromitovány prostřednictvím veřejného přístupu.

Nastavte proměnné prostředí MATCH_PASSWORD a FASTLANE_APPLE_API_KEY v tajemstvích vašeho CI poskytovatele. API klíč App Store Connect umožňuje Match autentizovat se v Apple Developer Portal bez dvoufaktorové autentizace, což vylučuje interaktivní požadavky v automatických sestaveních a zabraňuje blokování pipeline.

Typické chyby při práci s Match

I při správném nastavení Match mohou vznikat chyby související s vypršením certifikátů, konflikty profilů nebo nesprávnou konfigurací prostředí. Diagnostika problémů Match se zakládá na analýze logů příkazu a kontrole Git úložiště certifikátů na aktuálnost.

Nejčastější chyba — «You need to provide a password for Match» — vzniká, když proměnná prostředí MATCH_PASSWORD není nastavena na počítači nebo v prostředí CI. Řešení: přidejte MATCH_PASSWORD do proměnných prostředí systému nebo předejte heslo přes parametr --keychain_password při spuštění příkazu Match.

Druhý nejčastější problém je konflikt certifikátů při přidávání nového zařízení do AdHoc profilu. Řeší se příkazem fastlane match adhoc --force, který znovu vytvoří profily s ohledem na nová zařízení. Apple Developer certifikáty platí jeden rok, poté je sestavení s jejich použitím odmítnuto App Store Connect. Match upozorňuje na vypršení 30 dní před koncem lhůty.

Při chybě «Multiple matches found for...» jsou v úložišti přítomny více verzí stejného certifikátu. Použijte příkaz fastlane match nuke pro úplné vyčištění úložiště a odstranění všech certifikátů z Apple Developer Portal. Po vyčištění proveďte generování od nuly — to zaručuje konzistentní stav profilů bez duplicit a konfliktních verzí.

Často kladené otázky

Jak Match šifruje certifikáty v Git úložišti?

Match používá OpenSSL s algoritmem AES-256-CBC pro šifrování každého souboru certifikátu před uložením do Git. Šifrovací klíč je vytvořen na základě přístupové fráze MATCH_PASSWORD. I při veřejném přístupu k úložišti zůstávají certifikáty nedostupné bez znalosti hesla.

Lze Match použít bez Git úložiště?

Ne, Match vyžaduje Git úložiště pro ukládání šifrovaných certifikátů. Úložiště však může být lokální, pokud není vyžadována synchronizace mezi počítači. V tomto případě se v parametru git_url zadává místní cesta k adresáři v souborovém systému namísto URL vzdáleného úložiště.

Co dělat při konfliktu verzí certifikátů v týmu?

Konflikty vznikají, když dva vývojáři současně generují různé certifikáty. Řešení — použijte příkaz fastlane match nuke pro úplné vyčištění všech certifikátů v úložišti a Apple Developer Portal. Po vyčištění jeden vývojář provede generování od nuly a synchronizuje přes Git.

Jak aktualizovat certifikáty v Match po vypršení platnosti?

Match automaticky detekuje prošlé certifikáty při spuštění a navrhuje jejich výměnu. Pro vynucenou aktualizaci spusťte fastlane match [type] --force — příkaz znovu vytvoří certifikáty a profily daného typu, i když stávající jsou stále platné, což je užitečné při změně vývojářského týmu.

Čím se Match liší od ruční správy certifikátů v Xcode?

Ruční správa vyžaduje generování certifikátů přes Xcode nebo Developer Portal pro každý počítač zvlášť. Match centralizuje ukládání, šifruje data, synchronizuje je mezi vývojáři a CI/CD a také automaticky kontroluje platnost a expiraci všech podpisů bez lidského zásahu.

Shrnutí

  • Match — nástroj Fastlane pro správu Code Signing certifikátů iOS prostřednictvím šifrovaného Git úložiště jako jediného zdroje pravdy.
  • Šifrování založené na AES-256 a OpenSSL chrání certifikáty i při veřejném přístupu k úložišti a přístupová fráze se nastavuje pomocí proměnné MATCH_PASSWORD.
  • Match podporuje čtyři typy profilů: development, appstore, adhoc a enterprise — každý pro svůj cílový scénář distribuce aplikace.
  • Konfigurace se provádí pomocí souboru Matchfile, kde se zadávají git_url, typ profilu, identifikátory aplikací a přihlašovací údaje Apple Developer.
  • Integrace s CI/CD pomocí příznaku --readonly umožňuje automatické získávání certifikátů v pipeline bez rizika změny úložiště a konfliktů.
  • Při vzniku problémů se používá příkaz nuke pro úplné vyčištění úložiště nebo --force pro vynucenou aktualizaci certifikátů a profilů.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také