Match (Fastlane) — egy eszköz a Code Signing tanúsítványok és iOS Provisioning Profiles kezelésére, amelyeket egy titkosított Git tárban tárol. Az Apple Developer Portalon keresztüli kézi kezeléssel ellentétben a Match automatizálja az aláírások szinkronizálását az összes fejlesztő és CI/CD rendszer között. A Fastlane hivatalos dokumentációja (2026) szerint a Match akár 90%-kal csökkenti az iOS alkalmazások összeállításakor előforduló, hibás tanúsítványokkal kapcsolatos hibákat.
Főbb pontok
Match (Fastlane) — a Fastlane ökoszisztéma egyik összetevője, amely az iOS fejlesztéshez szükséges Code Signing tanúsítványok és Provisioning Profiles központosított kezelésére szolgál. Megoldja az aláírások csapattagok közötti szinkronizálásának problémáját, és automatizálja a tanúsítványok beállítását a CI/CD csővezetékekben fejlesztői részvétel nélkül.
A Match nélkül minden csapattag kézzel hoz létre tanúsítványokat az Xcode-on vagy Apple Developer Portalon keresztül, ami konfliktusokhoz vezet a különböző gépeken történő összeállításkor. Code Signing — az iOS alkalmazás digitális aláírásának folyamata, amely megerősíti annak szerzőségét és integritását a felhasználó eszközére történő telepítés előtt.
Az Apple Developer Documentation (2025) szerint a tanúsítványok helytelen beállítása az egyik leggyakoribb oka az alkalmazás App Store-ba történő küldésének elutasításának. A Match automatice ellenőrzi a tanúsítványok érvényességét és figyelmeztet a lejárati időkre, ezzel csökkentve az összeállítás elutasításának kockázatát az Apple ellenőrzési szakaszában.
Használja a Match-ot bármely olyan projektben, ahol két vagy több fejlesztő dolgozik, vagy ahol CI/CD csővezeték van — ez 30 percről egyetlen terminálparancsra csökkenti az új csapattag környezetének beállítási idejét.
A Match architektúrája az iOS csapat összes tanúsítványának egységes igazságforrás koncepciójára épül. Ahelyett, hogy minden fejlesztő kulcstartójában lokálisan tárolná, a Match egyetlen Git tárban egyesíti a tanúsítványokat, minden fájlt titkosítva a mentés előtt.
A folyamat három szakaszból áll. Az inicializálási szakaszban a Match az Apple Developer Portal API-n keresztül létrehozza az összes szükséges tanúsítványt és profilt. Minden fájl AES-256 algoritmussal kerül titkosításra, egy felhasználói jelszó kifejezés alapján képzett kulccsal. A titkosított fájlok a Git tárban kerülnek tárolásra, és szinkronizálásra kerülnek a távoli szerverrel standard Git push és pull műveleteken keresztül.
A Match az OpenSSL és egy felhasználói jelszó kifejezés kombinációját használja a tanúsítványok és profilok titkosításához. A hozzáférési kulcs a MATCH_PASSWORD környezeti változón keresztül állítható be, és nem kerül tárolásra a tárban, ami kizárja a szivárgást még a Git szerver kompromittálódása vagy a tárhoz való nyilvános hozzáférés esetén is.
Tanúsítvány kérésekor a Match betölti a titkosított fájlt a tárból, lokálisan visszafejti a jelszó kifejezés segítségével, és telepíti az aktuális gép Keychain-jébe. Az összeállítás befejezése után a tanúsítványok eltávolíthatók a Keychain-ből a vállalati környezet biztonsági irányelveinek betartása érdekében — ez megakadályozza az elavult tanúsítványok használatát a következő összeállításokban.
Minden tanúsítvány az alkalmazás azonosítóját, a profil típusát és a létrehozás dátumát tartalmazó néven kerül tárolásra. Ez a struktúra lehetővé teszi a Match számára a tanúsítványverziók kezelését és szükség esetén a standard Git revert és reset parancsokkal való visszatérést egy korábbi állapotba. Ez különösen hasznos egy profil véletlen törlése vagy felülírása esetén.
A Match telepítése a Fastlane-nel együtt történik a Ruby csomagkezelőn keresztül: gem install fastlane. A telepítés után inicializálni kell a tanúsítványtárat a fastlane match init paranccsal, amely létrehoz egy üres Git tárat és legenerál egy Matchfile fájlt az alapbeállítások sablonjával.
# Match tár inicializálása
fastlane match init
A Matchfile fájl tartalmazza a tanúsítványtárhoz való csatlakozás összes paraméterét: a Git tár URL-jét, az alapértelmezett profiltípust, az alkalmazásazonosítókat és az Apple Developer hitelesítő adatokat. Egy tipikus konfiguráció példája öt fejlesztőből álló csapat számára:
# 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")
A type paraméter határozza meg a profiltípust: :development a fejlesztői eszközökön történő hibakereséshez, :appstore az App Store-ban történő publikáláshoz, :adhoc külső eszközökön történő teszteléshez és :enterprise vállalati In-House terjesztéshez az App Store-on kívül. Minden típus külön könyvtárat hoz létre a tárban, lehetővé téve a profilok cél összeállítási forgatókönyvek szerinti szervezését.
A Match több hitelesítési módszert támogat az Apple Developer Portalban: kétfaktoros hitelesítést Apple ID segítségével, App-Specific Password-öt és App Store Connect API kulcsokat. CI/CD esetén API kulcsok használata ajánlott — ezek nem igényelnek interaktív megerősítő kód bevitelt és nem blokkolják az automatikus összeállításokat a fejlesztői eszköz váltásakor.
A Matchfile konfigurálása után a fastlane match development vagy fastlane match appstore parancs kerül végrehajtásra a profilok generálásához és szinkronizálásához. A Match automatice létrehozza vagy frissíti a tanúsítványokat az Apple Developer Portal API-n keresztül, és elmenti azokat a tárba. Apple Developer Portal — az Apple webes felülete tanúsítványok, alkalmazásazonosítók és a fejlesztők engedélyezett eszközeinek listájának kezeléséhez.
Az első indításkor a Match kérni fog egy jelszó kifejezést a tár titkosításához. Ezt a kifejezést el kell menteni a CI/CD titokkezelőben (GitHub Actions Secrets, GitLab CI Variables vagy Jenkins Credentials), és a MATCH_PASSWORD környezeti változón keresztül kell átadni. Enélkül a Match nem tudja visszafejteni a tanúsítványokat más gépeken vagy a CI környezetben.
A Match felülete parancsok egy halmazából áll a tanúsítványok és profilok létrehozásához, frissítéséhez, szinkronizálásához és törléséhez. Minden parancs a Code Signing életciklusának egy adott műveletének felel meg: a generálástól a tár teljes tisztításáig.
A fastlane match development parancs betölti vagy létrehozza a Development tanúsítványokat és profilokat a helyi eszközökön történő hibakereséshez. Provisioning Profile — egy Apple digitális dokumentum, amely összeköti a fejlesztői tanúsítványt az alkalmazás azonosítójával és a telepítésre engedélyezett eszközök listájával.
Az App Store-ban történő publikáláshoz a fastlane match appstore használatos — ez Distribution tanúsítványokat és AppStore profilokat generál. A fastlane match adhoc parancs profilokat hoz létre külső eszközökön történő teszteléshez, a fastlane match enterprise pedig vállalati In-House alkalmazásokhoz.
# Development profilok létrehozása hibakereséshez
fastlane match development
# AppStore profilok létrehozása kiadáshoz
fastlane match appstore
# Meglévő kézzel létrehozott tanúsítványok importálása
fastlane match import
A fastlane match import parancs lehetővé teszi meglévő tanúsítványok hozzáadását a tárhoz — hasznos a kézi kezelésről Match-re történő migráláskor. A --readonly paraméter blokkolja a tárban történő bármilyen változtatást, ami kritikus a CI környezetben, ahol a csővezeték nem hozhat létre és nem törölhet tanúsítványokat és profilokat automatice.
| Match parancs | Cél | Profil típusa |
|---|---|---|
| match development | Development profilok létrehozása eszközökön történő hibakereséshez | Development |
| match appstore | Profilok létrehozása App Store-ban történő publikáláshoz | AppStore |
| match adhoc | Profilok külső teszteléshez bétatesztelők eszközein | AdHoc |
| match enterprise | Vállalati profilok In-House terjesztéshez | Enterprise |
| match import | Korábban létrehozott tanúsítványok importálása a tárba | Bármely |
A tár teljes tisztításához a fastlane match nuke parancs használatos. Ez eltávolítja az összes tanúsítványt a Git tárból, az Apple Developer Portalról és a helyi gépről — ez a Code Signing állapotának teljes visszaállítása a projekthez. A parancs csak kritikus konfliktusok esetén vagy új Apple Developer fiókra váltáskor alkalmazandó.
A Match CI/CD integrációja — az eszköz egyik fő előnye. A GitHub Actions, GitLab CI, Bitrise vagy Jenkins csővezetékben a Match automatice betölti és telepíti a megfelelő tanúsítványokat fejlesztői részzvétel nélkül. Ez lehetővé teszi az iOS alkalmazás teljesen automatizált összeállítását és aláírását a committól a kész IPA-ig.
A GitHub Actions tipikus konfigurációja magában foglalja a Fastlane telepítését, a MATCH_PASSWORD változó beállítását és a Match indítását a --readonly zászlóval. GitHub Actions — a GitHub CI/CD platformja, amely automatizálja a kód összeállítását, tesztelését és publikálását a tárban történő események alapján.
# Fastlane telepítése CI környezetben
gem install fastlane --no-document
# Match indítása read-only módban módosítási jog nélkül
fastlane match development --readonly
A Match CI-ben történő indítása előtt konfigurálni kell a hozzáférést a tanúsítványtárhoz. A Fastlane automatice klónozza a tárat a Matchfile git_url paramétere alapján. A tárhoz való hozzáférés SSH-kulccsal vagy personal access tokennel konfigurálható, amelyek a CI rendszer titkaihoz kerülnek hozzáadásra — ez garantálja, hogy a tanúsítványok nem kerülnek veszélybe nyilvános hozzáférés révén.
Állítsa be a MATCH_PASSWORD és FASTLANE_APPLE_API_KEY környezeti változókat a CI szolgáltató titkai között. Az App Store Connect API kulcs lehetővé teszi a Match számára, hogy kétfaktoros hitelesítés nélkül hitelesítse magát az Apple Developer Portalban, ami kizárja az interaktív kéréseket az automatikus összeállításokban és megakadályozza a csővezeték blokkolását.
Még a Match helyes beállítása esetén is előfordulhatnak hibák a tanúsítványok lejárata, profilkonfliktusok vagy a környezet helytelen konfigurációja miatt. A problémák diagnosztizálása a Match parancsok naplóinak elemzésén és a tanúsítványok Git tára aktualitásának ellenőrzésén alapul.
A leggyakoribb hiba — «You need to provide a password for Match» — akkor fordul elő, amikor a MATCH_PASSWORD környezeti változó nincs beállítva a gépen vagy a CI környezetben. Megoldás: adja hozzá a MATCH_PASSWORD-ot a rendszer környezeti változóihoz, vagy adja át a jelszót a --keychain_password paraméteren keresztül a Match parancs indításakor.
A második leggyakoribb probléma a tanúsítványkonfliktus új eszköz AdHoc profilhoz történő hozzáadásakor. A fastlane match adhoc --force paranccsal oldható meg, amely újra létrehozza a profilokat az új eszközök figyelembevételével. Apple Developer a tanúsítványok egy évig érvényesek, ezt követően az ezeket használó összeállítást az App Store Connect elutasítja. A Match 30 nappal a határidő lejárta előtt figyelmeztet a lejáratra.
A «Multiple matches found for...» hiba esetén a tárban ugyanazon tanúsítvány több verziója található. Használja a fastlane match nuke parancsot a tár teljes tisztításához és az összes tanúsítvány Apple Developer Portalról történő eltávolításához. A tisztítás után végezze el a generálást a nulláról — ez garantálja a profilok konzisztens állapotát duplikátumok és ütköző verziók nélkül.
Gyakran ismételt kérdések
A Match az OpenSSL-t használja az AES-256-CBC algoritmussal minden tanúsítványfájl titkosításához a Git-be mentés előtt. A titkosítási kulcs a MATCH_PASSWORD jelszó kifejezés alapján kerül képzésre. Még a tárhoz való nyilvános hozzáférés esetén is a tanúsítványok hozzáférhetetlenek maradnak a jelszó ismerete nélkül.
Nem, a Match Git tárat igényel a titkosított tanúsítványok tárolásához. A tár azonban lehet lokális, ha a gépek közötti szinkronizálás nem szükséges. Ebben az esetben a git_url paraméterben a távoli tár URL-je helyett egy helyi elérési út kerül megadásra a fájlrendszerben lévő könyvtárhoz.
Konfliktusok akkor fordulnak elő, amikor két fejlesztő egyidejűleg különböző tanúsítványokat hoz létre. Megoldás — használja a fastlane match nuke parancsot az összes tanúsítvány teljes eltávolításához a tárból és az Apple Developer Portalról. A tisztítás után egy fejlesztő végezze el a generálást a nulláról és szinkronizáljon Git-en keresztül.
A Match automatice észleli a lejárt tanúsítványokat indításkor és javasolja azok cseréjét. Kényszerített frissítéshez hajtsa végre a fastlane match [type] --force parancsot — a parancs újra létrehozza a megadott típusú tanúsítványokat és profilokat, még akkor is, ha a meglévők még érvényesek, ami hasznos a fejlesztői csapat váltásakor.
A kézi kezelés megköveteli a tanúsítványok Xcode-on vagy Developer Portalon keresztüli generálását minden géphez külön-külön. Match központosítja a tárolást, titkosítja az adatokat, szinkronizálja azokat a fejlesztők és CI/CD között, valamint automatice ellenőrzi az összes aláírás érvényességét és lejárati idejét emberi beavatkozás nélkül.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is