Match (Fastlane): vad är det, certifikathantering och konfiguration i utveckling

Författare: IT Sectr Publicerad: 2026-04-14 Lästid: 10 min

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 — ett Fastlane-verktyg för centraliserad lagring och synkronisering av iOS-certifikat och Provisioning Profiles via en krypterad Git-databas.
  • Alla certifikat krypteras med OpenSSL innan de sparas i databasen, vilket säkerställer nyckelsäkerhet även vid allmän åtkomst till databasen.
  • Match stöder flera profiltyper: development, appstore, adhoc och enterprise — för olika bygg- och distributionsscenarier.
  • Integration med CI/CD gör att team automatiskt kan få aktuella certifikat utan manuell export från Apple Developer Portal på varje maskin.
  • Flaggan --readonly förhindrar oavsiktlig ändring av certifikat i CI-miljön och garanterar stabiliteten i den automatiska byggpipelinen.

Vad är Match (Fastlane)?

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.

Hur fungerar Match: krypterad Git-databas

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.

Arkitektur för certifikatkryptering

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 och konfiguration av Match

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.

bash
# Initiera Match-databasen
fastlane match init

Konfiguration via Matchfile

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:

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")

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.

Generering och synkronisering av profiler

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.

Grundläggande Match-kommandon för certifikathantering

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.

Kommandon för dagligt arbete

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.

bash
# 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-kommandoSyfteProfiltyp
match developmentSkapa Development-profiler för felsökning på enheterDevelopment
match appstoreSkapa profiler för publicering i App StoreAppStore
match adhocProfiler för extern testning på beta-testares enheterAdHoc
match enterpriseFöretagsprofiler för In-House-distributionEnterprise
match importImportera tidigare skapade certifikat till databasenValfri

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.

Integrera Match i CI/CD-pipeline

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.

bash
# 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.

Typiska fel vid arbete med Match

Ä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

Hur krypterar Match certifikat i Git-databasen?

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.

Kan jag använda Match utan Git-databas?

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.

Vad göra vid konflikt mellan certifikatversioner i teamet?

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.

Hur uppdaterar jag certifikat i Match efter utgång?

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.

Hur skiljer sig Match från manuell certifikathantering i Xcode?

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

  • Match — Fastlane-verktyg för hantering av iOS Code Signing-certifikat via en krypterad Git-databas som enda sanningskälla.
  • Kryptering baserad på AES-256 och OpenSSL skyddar certifikaten även vid allmän åtkomst till databasen, och lösenordsfrasen ställs in via variabeln MATCH_PASSWORD.
  • Match stöder fyra profiltyper: development, appstore, adhoc och enterprise — var och en för sitt eget måldistributionsscenario för applikationen.
  • Konfiguration görs via filen Matchfile, där git_url, profiltyp, applikationsidentifierare och Apple Developer-inloggningsuppgifter anges.
  • Integration med CI/CD via flaggan --readonly möjliggör automatisk hämtning av certifikat i pipelines utan risk för ändring av databasen och konflikter.
  • Vid uppkomst av problem används kommandot nuke för fullständig rensning av databasen eller --force för tvingad uppdatering av certifikat och profiler.

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.

Diskutera projektet

Läs också