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

Cum am lansat pe iOS fără să deschid Xcode: EAS Build auto-manage în 2026

De Cosmin Rotaru, 22 iun. 2026 · 17 vizualizări · 2 like-uri

Postat 22 iun. 2026
json
{
  "cli": {
    "version": ">= 9.0.0"
  },
  "build": {
    "production": {
      "ios": {
        "distribution": "store"
      }
    }
  }
}

Mi-aduc aminte de prima mea lansare pe iOS prin 2016. Trebuia să generez CSR-uri în Keychain, să le urc în portalul Apple, să descarc profile de provizionare și să mă rog să nu crape Xcode la arhivare. O mizerie care mânca lejer o zi întreagă.

Luna trecută am pus pe App Store o aplicație nouă, un MVP pentru un client din zona de retail, cu target de 5.000 de utilizatori în prima lună. Am mers cap-coadă pe Expo EAS Build cu managementul automat al certificatelor. Am salvat cel puțin 3 ore de configurări manuale și înjurături. În 2026, workflow-ul ăsta e atât de stabil încât chiar nu mai ai nicio scuză să faci asta manual.

Configurația de pornire

Înainte de orice comandă, trebuie să te asiguri că ai contul de Apple Developer activ (da, ăla de 99$ pe an) și că ai drepturi de Admin pe el. EAS are nevoie de acces ca să poată crea cheile de distribuție și profilele în numele tău.

În folderul proiectului tău, fișierul eas.json trebuie să aibă profilul de producție definit corect. Nu te complica cu setări inutile, pornește de la o bază curată.

Pasul 1: Inițierea build-ului în cloud

Rulează în terminal comanda de build pentru iOS. Dacă e prima dată când o rulezi pentru acest proiect, EAS te va trece printr-un wizard interactiv.

eas build --platform ios --profile production

Aici începe magia. CLI-ul te va întreba: "Do you want Expo to handle your credentials for iOS?". Răspunsul tău este un Yes hotărât.

Pasul 2: Autentificarea Apple și generarea automată

CLI-ul îți va cere să te autentifici în contul tău de Apple Developer. Recomandarea mea este să folosești logarea prin cheie de API Apple (App Store Connect API Key) dacă lucrezi în echipă. Dacă ești solo, merge și logarea clasică cu user și parolă, plus codul 2FA primit pe telefon.

După ce te-ai logat, EAS face următoarele chestii în fundal:

  • Verifică dacă ai deja un Bundle Identifier înregistrat în contul Apple. Dacă nu, îl creează folosind ios.bundleIdentifier din app.json-ul tău.
  • Generează o cheie de distribuție privată (iOS Distribution Certificate).
  • Creează un nou App ID și un explicit Provisioning Profile asociat acestei chei.

Totul durează cam 2 minute. Fără să deschizi Keychain, fără descărcări manuale.

Compromisul: Când NU este bun auto-manage-ul?

Să fim sinceri, nu totul e perfect. Auto-manage-ul de la Expo funcționează de minune pentru 90% din aplicații. Totuși, am avut probleme la un proiect mai vechi unde aveam integrate extensii de iOS (cum ar fi un widget de ecran de pornire și un share extension custom).

EAS tinde să devină confuz când ai multiple target-uri în proiectul Xcode generat. Începe să creeze profile duplicat în portalul Apple, cu nume ciudate pline de hash-uri. Dacă ai nevoie de push notifications cu reguli complexe de APNs sau medii de staging separate pe același cont, s-ar putea să fii nevoit să treci pe credențiale manuale sau să le configurezi fin în eas.json folosind proprietatea credentialsSource.

Pasul final: Trimiterea spre App Store Connect

După ce build-ul s-a terminat cu succes în cloud (durează cam 10-15 minute, în funcție de coada din Expo Dashboard), poți trimite build-ul direct în TestFlight cu o singură comandă:

eas submit --platform ios

Și gata. Aplicația ta e gata de testare internă fără ca tu să fi deschis vreodată Xcode sau să fi deținut fizic un Mac.

Voi cum procedați? Mai folosește cineva Xcode manual pentru deployment sau am trecut toți pe pipeline-uri automate?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

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