React Native Academy · Lektion

Konfiguration af signering med EAS Build

Opsæt eas.json med en produktions-buildprofil, kør eas credentials for at administrere certifikater, og start et EAS Build, der producerer en signeret .ipa-fil.

Lektion 2 af 413 trin

Konfiguration af signering med EAS Build er en gratis React Native Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i React Native Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. React Native Academy-kurset indeholder 4 lektioner i alt.

Hvad er EAS Build

EAS Build (Expo Application Services Build) er en cloudtjeneste til builds, der kompilerer din React Native- eller Expo-app på Expos infrastruktur og producerer en signeret .ipa til iOS eller .apk/.aab til Android. Du behøver ikke Xcode, Android Studio eller en Mac til iOS-builds — EAS stiller administrerede macOS-maskiner til rådighed. Tjenesten håndterer også legitimationsoplysninger til kodesignering automatisk.

Installation og login på EAS CLI

EAS CLI er kommandolinjeværktøjet, du bruger til at starte builds, håndtere legitimationsoplysninger og indsende apps. Installér det globalt med npm, og log derefter ind med din Expo-konto. Du skal have en Expo-konto (gratis) ud over din Apple Developer-konto. Når du er logget ind, kan EAS kommunikere med Apples API på dine vegne for at håndtere certifikater og provisioneringsprofiler.

# Install EAS CLI globally
npm install -g eas-cli

# Verify installation
eas --version

# Log in with your Expo account
eas login

# Check who you are logged in as
eas whoami

# Link your project (run from project root)
eas init

Konfigurationsfilen eas.json

Al EAS Build-adfærd konfigureres i eas.json i projektets rod. Du definerer build-profiler — navngivne konfigurationer som development, preview og production. Hver profil angiver distributionstypen, kilden til legitimationsoplysninger, miljøvariabler og platformspecifikke indstillinger. Kør eas build:configure for automatisk at generere en indledende eas.json.

// eas.json
{
  'cli': { 'version': '>= 5.0.0' },
  'build': {
    'development': {
      'developmentClient': true,
      'distribution': 'internal',
      'ios': { 'simulator': true }
    },
    'preview': {
      'distribution': 'internal'
    },
    'production': {
      'distribution': 'store',
      'credentialsSource': 'remote'
    }
  },
  'submit': {
    'production': {
      'ios': { 'appleId': 'you@example.com' }
    }
  }
}

Automatisk opsætning af legitimationsoplysninger

EAS kan automatisk opsætte alle iOS-legitimationsoplysninger til signering, hvis du giver tjenesten adgang til din Apple Developer-konto. Første gang du kører eas build --platform ios, spørger EAS dig, om du vil generere et nyt certifikat og en ny provisioneringsprofil eller bruge eksisterende. Vælg indstillingen til automatisk generering, så opretter EAS et distributionscertifikat via Apples API, genererer en matchende provisioneringsprofil og gemmer begge dele sikkert i EAS' lager til legitimationsoplysninger.

# Trigger a production iOS build
eas build --platform ios --profile production

# EAS prompts:
# ? Would you like to log in to your Apple account?
# > Yes
# Enter Apple ID: you@example.com
# Enter password: (app-specific password)
#
# ? Generate a new Apple Distribution Certificate?
# > Generate a new certificate  <- choose this
#
# ? Generate a new Provisioning Profile?
# > Generate a new profile  <- choose this
#
# Build queued...

Visning og håndtering af legitimationsoplysninger

Kommandoen eas credentials åbner en interaktiv menu, hvor du kan se, opdatere eller fjerne gemte legitimationsoplysninger. Du kan se certifikatets udløbsdato, provisioneringsprofilens type og hvilket App ID den dækker. Du kan også hente legitimationsoplysninger fra cloudlageret til lokal brug eller sende en lokalt genereret .p12-fil og .mobileprovision-fil til EAS, hvis du foretrækker at håndtere dem selv.

# View all stored credentials
eas credentials

# Select:
# Platform: iOS
# App: com.yourcompany.myapp
#
# EAS shows:
# Distribution Certificate
#   - Issued to: Your Name
#   - Expires: Dec 15, 2026
#   - Serial: A1B2C3...
# Provisioning Profile
#   - Type: App Store
#   - Expires: Dec 15, 2026
#   - Profile UUID: XXXXXXXXX

Miljøvariabler i EAS Build

EAS Build understøtter miljøvariabler til hemmeligheder og konfiguration under build. Definér dem i eas.json under nøglen env for en bestemt profil, eller gem følsomme værdier i EAS Secrets via eas secret:create. EAS Secrets er krypterede og indsættes kun i builds — de logges eller offentliggøres aldrig. Brug dem til API-nøgler, tokens eller andre værdier, der ikke må være i kildekontrollen.

// eas.json — environment variables per profile
{
  'build': {
    'production': {
      'distribution': 'store',
      'env': {
        'EXPO_PUBLIC_API_URL': 'https://api.yourapp.com',
        'APP_VARIANT': 'production'
      }
    },
    'preview': {
      'env': {
        'EXPO_PUBLIC_API_URL': 'https://staging.yourapp.com',
        'APP_VARIANT': 'staging'
      }
    }
  }
}

// Add secrets (sensitive values NOT in eas.json)
// eas secret:create --scope project --name STRIPE_SECRET_KEY --value sk_live_...

Start af et build og overvågning af fremdriften

Start et iOS-produktionsbuild med eas build --platform ios --profile production. EAS sætter buildet i kø på en macOS-runner og returnerer en build-URL, som du kan overvåge i browseren. Build-logfiler vises i realtid. Buildets status går gennem følgende trin: i kø → i gang → færdigt. Et færdigt build giver en download-URL til .ipa-filen eller en automatisk upload til TestFlight, hvis det er konfigureret.

# Build and submit to TestFlight in one command
eas build --platform ios --profile production --auto-submit

# Or build first, submit separately
eas build --platform ios --profile production

# View recent builds
eas build:list

# View build logs for a specific build
eas build:view <build-id>

Lokale EAS-builds til fejlfinding

Hvis et cloudbuild mislykkes, og du ikke kan diagnosticere problemet ud fra logfilerne, kan du køre et lokalt EAS-build med eas build --local. Det kører præcis den samme buildproces på din Mac ved hjælp af de samme trin som cloud-runneren. Du får fuld adgang til midlertidige filer og kan indsætte trin til fejlfinding. Lokale builds kræver, at Xcode er installeret, men bruger EAS' scripts til buildorkestrering.

# Run the EAS build locally on your Mac
eas build --platform ios --profile production --local

# The build output is placed in:
# ./build-*.ipa (in the project root)

# Useful flags:
# --no-wait     (don't stream output, just start)
# --clear-cache (ignore previous build cache)

Signering i administrerede workflows og bare workflows

I det administrerede workflow (Expo) håndterer EAS alle detaljer vedrørende indbygget signering — du skal blot konfigurere eas.json. I det bare workflow (udsendt React Native) kan du stadig bruge EAS Build, men du håndterer selv det indbyggede projekt. EAS håndterer stadig legitimationsoplysninger og cloudkompilering, men du skal muligvis konfigurere Xcode-projektets signeringsindstillinger manuelt via et konfigurationsplugin eller direkte i ios/.

// eas.json — bare workflow needs explicit scheme
{
  'build': {
    'production': {
      'distribution': 'store',
      'ios': {
        'scheme': 'MyApp',  // Xcode scheme name
        'buildConfiguration': 'Release'
      }
    }
  }
}

Ad Hoc-distribution til kvalitetstestere

Ad Hoc-distribution giver dig mulighed for at installere et build direkte på op til 100 specifikke registrerede enheder uden at gå via App Store eller TestFlight. Registrér testernes enheds-UDID'er i Developer Portal, opret en Ad Hoc-provisioneringsprofil, opret et build med distribution: 'internal' i EAS, og del installationslinket. EAS kan også registrere nye enheds-UDID'er for dit team via kommandoen eas device:create.

// eas.json — internal/ad-hoc build
{
  'build': {
    'qa': {
      'distribution': 'internal',
      'ios': { 'simulator': false }
    }
  }
}

# Register a tester's device
eas device:create

# Build for QA (generates ad-hoc signed .ipa)
eas build --platform ios --profile qa

# Share the install link from the EAS dashboard with testers

Fejlfinding af signeringsfejl

Almindelige signeringsfejl omfatter: uoverensstemmelse mellem certifikat og profil (det gemte certifikat passer ikke til provisioneringsprofilen — løs det ved at generere begge igen), udløbet certifikat (forny det via eas credentials), manglende rettigheder (en funktion findes i rettighedsfilen, men ikke i provisioneringsprofilen — tilføj funktionen i Developer Portal, og generér profilen igen) og forkert bundle-ID (kontrollér, at ios.bundleIdentifier i app.json stemmer nøjagtigt overens med App ID'et).

# Common fix: clear and regenerate credentials
eas credentials --platform ios
# Select: Remove all credentials, then run build again

# Or manually force new certificate:
eas credentials --platform ios
# Select: Update Distribution Certificate

# Check bundle ID mismatch
cat app.json | grep bundleIdentifier
# Should match exactly what's in developer.apple.com > Identifiers

Hurtigt tjek

Test din forståelse af begreberne inden for React Native Mobile Development fra denne lektion.

Opsummering af lektionen

I denne lektion lærte du: hvordan du konfigurerer eas.json med build-profiler til udvikling, forhåndsvisning og produktion, hvordan EAS automatisk håndterer iOS-certifikater og provisioneringsprofiler, og hvordan du bruger miljøvariabler og EAS Secrets til konfiguration under build. Du så også, hvordan du starter builds, kører dem lokalt til fejlfinding og løser almindelige signeringsfejl. I næste afsnit forbereder vi metadata til App Store i App Store Connect.

Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Konfiguration af signering med EAS Build” gratis?

Ja — alle 3 lektioner i læringssporet React Native Academy, inklusive “Konfiguration af signering med EAS Build”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. React Native Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Konfiguration af signering med EAS Build”?

Opsæt eas.json med en produktions-buildprofil, kør eas credentials for at administrere certifikater, og start et EAS Build, der producerer en signeret .ipa-fil. Du øver dig i React Native Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på React Native Academy?

Der kræves ingen tidligere erfaring. React Native Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Konfiguration af signering med EAS Build”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne React Native Academy-lektion?

Ja. Alle React Native Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Opsætning af Apple Developer-konto og certifikater
  2. Konfiguration af signering med EAS Build
  3. Forberedelse af App Store-metadata i App Store Connect
  4. Indsendelse til gennemgang og håndtering af afvisninger
← Tilbage til React Native Academy