Match (Fastlane) — är ett verktyg för att hantera Code Signing-certifikat och Provisioning Profiles för iOS, som lagrar dem i en krypterad Git-databas. Till skillnad från manuell hantering via Apple Developer Portal automatiserar Match synkroniseringen av signaturer mellan alla utvecklare och CI/CD-system. Enligt Fastlanes officiella dokumentation (2026) eliminerar Match upp till 90% av felen som orsakas av felaktiga certifikat vid byggnation av iOS-applikationer.
Huvudpunkter
Match (Fastlane) — är en komponent i Fastlane-ekosystemet, avsedd för centraliserad hantering av Code Signing-certifikat och Provisioning Profiles för iOS-utveckling. Den löser problemet med synkronisering av signaturer mellan teammedlemmar och automatiserar konfigurationen av certifikat i CI/CD-pipelines utan utvecklarens inblandning.
Utan Match genererar varje teammedlem manuellt certifikat via Xcode eller Apple Developer Portal, vilket leder till konflikter vid byggnation på olika maskiner. Code Signing — är processen för digital signering av iOS-applikationen, som bekräftar dess upphovsrätt och integritet innan installation på användarens enhet.
Enligt Apple Developer Documentation (2025) är felaktig konfiguration av certifikat en av de vanligaste orsakerna till avvisning vid inlämning av en app till App Store. Match kontrollerar automatiskt certifikatens giltighet och varnar för utgående datum, vilket minskar risken för avvisning av bygget i Apples verifieringssteg.
Använd Match i alla projekt med två eller fler utvecklare eller med en CI/CD-pipeline — detta minskar tiden för att konfigurera miljön för en ny teammedlem från 30 minuter till ett enda kommando i terminalen.
Matchs arkitektur är byggd på konceptet med en enda sanningskälla för alla certifikat i iOS-teamet. Istället för lokal lagring i varje utvecklares nyckelkedja, förenar Match certifikaten i en enda Git-databas med kryptering av varje fil innan lagring.
Processen består av tre steg. I initieringssteget genererar Match alla nödvändiga certifikat och profiler via Apple Developer Portal API. Varje fil krypteras med AES-256-algoritmen med en nyckel som bildas baserat på en användarlösenordsfras. Krypterade filer sparas i Git-databasen och synkroniseras med fjärrservern via standard Git push- och pull-operationer.
Match använder en kombination av OpenSSL och en användarlösenordsfras för att kryptera certifikat och profiler. Åtkomstnyckeln ställs in via miljövariabeln MATCH_PASSWORD och lagras inte i databasen, vilket utesluter läckage även vid kompromettering av Git-servern eller allmän åtkomst till databasen.
Vid begäran av ett certifikat laddar Match den krypterade filen från databasen, dekrypterar den lokalt med lösenordsfrasen och installerar den i den aktuella maskinens Keychain. Efter byggets slutförande kan certifikaten tas bort från Keychain för att följa säkerhetspolicyer i företagsmiljön — detta förhindrar användning av föråldrade certifikat i efterföljande byggen.
Varje certifikat sparas med ett namn som innehåller applikationsidentifieraren, profiltypen och skapelsedatumet. Denna struktur gör att Match kan hantera certifikatversioner och vid behov återgå till ett tidigare tillstånd via standardkommandona Git revert och reset. Detta är särskilt användbart vid oavsiktlig borttagning eller överskrivning av en profil.
Installation av Match görs tillsammans med Fastlane via Ruby-pakethanteraren: gem install fastlane. Efter installation måste certifikatdatabasen initieras med kommandot fastlane match init, som skapar en tom Git-databas och genererar en Matchfile-fil med en mall för grundläggande inställningar.
# Initiera Match-databasen
fastlane match init
Fil Matchfile innehåller alla parametrar för anslutning till certifikatdatabasen: Git-databasens URL, standardprofiltyp, applikationsidentifierare och Apple Developer-inloggningsuppgifter. Ett exempel på en typisk konfiguration för ett team med fem utvecklare:
# 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")
Parametern type anger profiltypen: :development för felsökning på utvecklarenheter, :appstore för publicering i App Store, :adhoc för testning på externa enheter och :enterprise för företagsdistribution In-House utanför App Store. Varje typ skapar en separat katalog i databasen, vilket möjliggör organisering av profiler efter målbyggnadsscenarier.
Match stöder flera autentiseringsmetoder i Apple Developer Portal: tvåfaktorsautentisering via Apple ID, App-Specific Password och API-nycklar för App Store Connect API. För CI/CD rekommenderas användning av API-nycklar — de kräver inte interaktiv inmatning av bekräftelsekod och blockerar inte automatiska byggen vid byte av utvecklarenhet.
Efter konfiguration av Matchfile körs kommandot fastlane match development eller fastlane match appstore för att generera och synkronisera profiler. Match skapar eller uppdaterar automatiskt certifikat via Apple Developer Portal API och sparar dem i databasen. Apple Developer Portal — är Apples webbgränssnitt för hantering av certifikat, applikationsidentifierare och lista över tillåtna utvecklarenheter.
Vid första körningen kommer Match att begära en lösenordsfras för att kryptera databasen. Denna fras måste sparas i CI/CD-hemlighetshanteraren (GitHub Actions Secrets, GitLab CI Variables eller Jenkins Credentials) och skickas via miljövariabeln MATCH_PASSWORD. Utan den kan Match inte dekryptera certifikat på andra maskiner eller i CI-miljön.
Matchs gränssnitt består av en uppsättning kommandon för att skapa, uppdatera, synkronisera och ta bort certifikat och profiler. Varje kommando motsvarar en specifik åtgärd i Code Signings livscykel: från generering till fullständig rensning av databasen.
Kommandot fastlane match development laddar eller skapar Development-certifikat och -profiler för felsökning på lokala enheter. Provisioning Profile — är ett digitalt Apple-dokument som kopplar utvecklarcertifikatet till applikationsidentifieraren och listan över enheter som är tillåtna för installation.
För publicering i App Store används fastlane match appstore — den genererar Distribution-certifikat och AppStore-profiler. Kommandot fastlane match adhoc skapar profiler för testning på externa enheter, och fastlane match enterprise — för företagsapplikationer In-House.
# Skapa Development-profiler för felsökning
fastlane match development
# Skapa AppStore-profiler för lansering
fastlane match appstore
# Importera befintliga manuellt skapade certifikat
fastlane match import
Kommandot fastlane match import gör det möjligt att lägga till befintliga certifikat i databasen — användbart vid migrering från manuell hantering till Match. Parametern --readonly blockerar alla ändringar i databasen, vilket är kritiskt för CI-miljön, där pipelinen inte bör skapa eller ta bort certifikat och profiler automatiskt.
| Match-kommando | Syfte | Profiltyp |
|---|---|---|
| match development | Skapa Development-profiler för felsökning på enheter | Development |
| match appstore | Skapa profiler för publicering i App Store | AppStore |
| match adhoc | Profiler för extern testning på beta-testares enheter | AdHoc |
| match enterprise | Företagsprofiler för In-House-distribution | Enterprise |
| match import | Importera tidigare skapade certifikat till databasen | Valfri |
För fullständig rensning av databasen används kommandot fastlane match nuke. Det tar bort alla certifikat från Git-databasen, Apple Developer Portal och den lokala maskinen — en fullständig återställning av Code Signing-statusen för projektet. Kommandot tillämpas endast vid kritiska konflikter eller vid byte till ett nytt Apple Developer-konto.
CI/CD-integration av Match — en av verktygets viktigaste fördelar. I pipeline för GitHub Actions, GitLab CI, Bitrise eller Jenkins laddar och installerar Match automatiskt rätt certifikat utan utvecklarens inblandning. Detta möjliggör helt automatiserad byggnation och signering av iOS-applikationen från commit till färdig IPA.
En typisk konfiguration för GitHub Actions inkluderar installation av Fastlane, inställning av MATCH_PASSWORD-variabeln och körning av Match med flaggan --readonly. GitHub Actions — är en CI/CD-plattform från GitHub som automatiserar byggnation, testning och publicering av kod baserat på händelser i databasen.
# Installera Fastlane i CI-miljön
gem install fastlane --no-document
# Kör Match i read-only-läge utan ändringsrättighet
fastlane match development --readonly
Innan Match körs i CI måste åtkomst till certifikatdatabasen konfigureras. Fastlane klonar automatiskt databasen baserat på parametern git_url från Matchfile. Åtkomst till databasen konfigureras via en SSH-nyckel eller personal access token, som läggs till i CI-systemets hemligheter — detta garanterar att certifikaten inte äventyras via offentlig åtkomst.
Konfigurera miljövariablerna MATCH_PASSWORD och FASTLANE_APPLE_API_KEY i din CI-leverantörs hemligheter. App Store Connect API-nyckeln gör att Match kan autentisera sig i Apple Developer Portal utan tvåfaktorsautentisering, vilket eliminerar interaktiva förfrågningar i automatiska byggen och förhindrar blockering av pipelinen.
Även vid korrekt konfiguration av Match kan fel uppstå relaterade till utgångna certifikat, profilkonflikter eller felaktig miljökonfiguration. Diagnostik av problem i Match baseras på analys av kommandologgar och kontroll av certifikatens Git-databas för aktualitet.
Det vanligaste felet — «You need to provide a password for Match» — uppstår när miljövariabeln MATCH_PASSWORD inte är inställd på maskinen eller i CI-miljön. Lösning: lägg till MATCH_PASSWORD i systemets miljövariabler eller skicka lösenordet via parametern --keychain_password när Match-kommandot körs.
Det näst vanligaste problemet är certifikatkonflikt vid tilläggning av en ny enhet till en AdHoc-profil. Löses med kommandot fastlane match adhoc --force, som återskapar profilerna med hänsyn till nya enheter. Apple Developer-certifikat är giltiga i ett år, varefter byggen som använder dem avvisas av App Store Connect. Match varnar för utgång 30 dagar före utgångsdatumet.
Vid felet «Multiple matches found for...» finns det flera versioner av samma certifikat i databasen. Använd kommandot fastlane match nuke för fullständig rensning av databasen och borttagning av alla certifikat från Apple Developer Portal. Efter rensning, utför generering från början — detta garanterar ett konsekvent tillstånd för profiler utan dubbletter och konflikterande versioner.
Vanliga frågor
Match använder OpenSSL med AES-256-CBC-algoritmen för att kryptera varje certifikatfil innan den sparas i Git. Krypteringsnyckeln bildas baserat på lösenordsfrasen MATCH_PASSWORD. Även vid allmän åtkomst till databasen förblir certifikaten otillgängliga utan kunskap om lösenordet.
Nej, Match kräver en Git-databas för att lagra krypterade certifikat. Databasen kan dock vara lokal om synkronisering mellan maskiner inte behövs. I så fall anges i parametern git_url en lokal sökväg till en katalog i filsystemet istället för URL:en till en fjärrdatabas.
Konflikter uppstår när två utvecklare samtidigt genererar olika certifikat. Lösning — använd kommandot fastlane match nuke för fullständig rensning av alla certifikat i databasen och Apple Developer Portal. Efter rensning utför en utvecklare generering från början och synkroniserar via Git.
Match upptäcker automatiskt utgångna certifikat vid start och föreslår ersättning. För tvingad uppdatering, kör fastlane match [type] --force — kommandot återskapar certifikat och profiler av den angivna typen, även om de befintliga fortfarande är giltiga, vilket är användbart vid byte av utvecklingsteam.
Manuell hantering kräver generering av certifikat via Xcode eller Developer Portal för varje maskin separat. Match centraliserar lagring, krypterar data, synkroniserar dem mellan utvecklare och CI/CD, samt kontrollerar automatiskt giltighet och utgångsdatum för alla signaturer utan mänsklig inblandning.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också