eduardweb.
Publicare Play Store & App StoreIntermediar#react-native#expo#eas-build#app-store#ios

Expo EAS Build cu certificate iOS auto-managed: cum am lansat pe App Store fără dureri de cap

De Răzvan Matei, 22 iul. 2026 · 11 vizualizări · 3 like-uri

Postat 22 iul. 2026
json
{
  "cli": {
    "version": ">= 7.0.0"
  },
  "build": {
    "production": {
      "ios": {
        "simulator": false,
        "enterpriseProvisioning": "universal"
      }
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "dev@firma.ro",
        "ascApiKeyPath": "./pc-api-key.p8",
        "ascApiKeyId": "ABC123XYZ",
        "ascApiKeyIssuerId": "12345678-abcd-1234-efgh-1234567890ab"
      }
    }
  }
}

Dacă pregătești prima lansare pe App Store și încă te trec transpirațiile când auzi de Provisioning Profiles, Apple Certificates și Keychain Access, te înțeleg perfect. Am trecut recent prin asta la un proiect React Native cu vreo 12k utilizatori pregătiți de onboarding, iar obiectivul a fost clar: zero timp pierdut cu configurări manuale de iOS.

Iată exact cum am configurat Expo EAS Build cu certificate auto-managed și ce lucruri trebuie să ai în vedere ca să nu-ți fie respins build-ul din prima.

De ce auto-managed și care e trade-off-ul real

Acum câțiva ani pierdeam lejer o jumătate de zi generând fișiere .cer, .mobileprovision, exportând chei private .p12 și urcându-le manual în pipeline-uri de Bitrise sau Fastlane. EAS credentials management face toată această birocrație în fundal, interconectându-se direct cu Apple Developer API.

Trade-off-ul e sincer: câștigi o viteză masivă și elimini eroarea umană, dar dai serviciilor Expo acces automatizat la contul tău de Apple Developer. Dacă lucrezi într-o corporație cu cerințeInfoSec drastice sau cu certificate Enterprise (In-House), probabil echipa de securitate te va obliga să gestionezi manual distribuția. Pentru 95% din proiecte însă, opțiunea auto-managed e cea mai sănătoasă alegere.

Pașii exacți pentru prima configurare

Ca să meargă totul din prima încercare, urmează fluxul ăsta fără să sari etape:

  1. Creează App Store Connect API Key: Intră în portalul App Store Connect -> Users and Access -> Integrations -> App Store Connect API. Generează o cheie nouă cu rol de Admin sau App Manager. Descarci fișierul .p8 (atenție, Apple te lasă să-l descarci o singură dată!) și salvezi Key ID și Issuer ID.
  2. Pregătește proiectul local: Asigură-te că ai instalat ultimul CLI de la Expo (npm i -g eas-cli) și că ești logat în contul tău. În rădăcina proiectului, rulează eas build:configure dacă nu ai deja un fișier eas.json valid.
  3. Rulează build-ul de producție: Când dai eas build --platform ios --profile production, CLI-ul te va întreba cum vrei să rezolvi credentials. Alegi opțiunea "Let Expo handle your credentials".
  4. Introdu datele API Key: Când te întreabă de autentificarea Apple, alege să folosești App Store Connect API Key și introdu Key ID, Issuer ID și calea către fișierul .p8. De aici încolo, EAS creează automat Distribution Certificate, App ID și Provisioning Profile-ul de App Store.

Ce am învățat pe pielea mea (Gotchas)

Am pățit la prima încercare ca build-ul să treacă cu succes în EAS, dar să fie respins imediat de Apple la ingestie. Motivul? Lipsa configurărilor clare pentru Privacy Manifests, pe care Apple le cere acum cu strictețe pentru orice API sensibil (cum ar fi UserDefaults sau device identity). Asigură-te că ai Expo SDK la zi (v51 sau mai nou), deoarece template-urile recente includ deja aceste declarații direct în app.json.

Un alt detaliu: dacă modifici bundleIdentifier-ul în app.json după ce ai generat deja certificatele, EAS va încerca să creeze un nou App ID. Dacă nu ai drepturi de Admin pe contul Apple Developer, comanda va crăpa cu o eroare criptică de permisiuni. Setează bundleIdentifier-ul definitiv înainte de primul eas build.

Voi ce soluție folosiți pentru pipeline-ul de iOS? Ați rămas pe Fastlane clasic sau ați trecut complet pe EAS Submit?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

Doar membrii comunității pot lăsa comentarii.