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

Expo EAS Build cu certificate iOS auto-manage: ghid practic pentru prima lansare în App Store

De Ana Ionescu, 4 aug. 2026 · 8 vizualizări · 3 like-uri

Postat 4 aug. 2026
json
{
  "cli": {
    "version": ">= 12.0.0"
  },
  "build": {
    "production": {
      "ios": {
        "simulator": false
      }
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "dev@firma.ro",
        "ascAppId": "6470000000",
        "appleTeamId": "AB123CDE45"
      }
    }
  }
}

Dacă lansezi prima ta aplicație iOS în 2026 și n-ai mai atins Xcode până acum, ai noroc. Prin 2018 am pierdut vreo trei zile doar configurând certificate p12, Keychain-ul pe macOS și provisioning profiles care expirau aiurea. Zilele trecute am configurat un build de producție pentru un client cu 12k useri activi și am terminat totul în 20 de minute folosind Expo EAS cu credentials auto-managed.

Nu mai e nevoie de Mac fizic și nici de bătăi de cap în Xcode ca să prinzi prima aplicație în TestFlight sau direct în App Store.

1. Ce-ți trebuie înainte să dai prima comandă

Înainte să atingi terminalul, asigură-te că ai un cont de Apple Developer plătit (99$/an). Dacă e proaspăt creat, intră în App Store Connect și acceptă toate acordurile noi de licențiere. Dacă Apple a scos un nou acord de confidențialitate și nu i-ai dat accept, comanda de build din EAS va crapa cu o eroare criptică despre autentificare.

Instalează CLI-ul și autentifică-te în contul tău Expo:

npm install -g eas-cli
eas login

2. Configurația de bază din eas.json

Creează fișierul de configurare rulând eas build:configure. Asta îți va genera un fișier eas.json în rădăcina proiectului. Acolo îți definești profilul de production.

Când rulezi prima dată comanda de build:

eas build --platform ios --profile production

EAS CLI te va întreba direct: "Do you want Expo to handle your build credentials?". Aici apeși pe Y fără să stai pe gânduri.

CLI-ul îți cere o singură dată datele de la contul Apple (sau un App Store Connect API Key, pe care îl recomand pentru echipe). Din secunda aia, infrastructura Expo preia controlul complete:

  • Generează un Distribution Certificate pe serverele lor.
  • Creează un Bundle Identifier nou în consola Apple dacă nu există deja.
  • Generează și atașează un Provisioning Profile valid pentru App Store.

3. Trimiterea automată în TestFlight cu EAS Submit

După ce build-ul din cloud e gata (durează cam 12-15 minute pe un runner gratuit), nu trebuie să descarci fișierul .ipa ca să-l urci manual prin Transporter. Îl poți trimite direct la Apple cu o singură comandă:

eas submit --platform ios --latest

Dacă ai trecut cheia de App Store Connect API în config, artefactul ajunge în TestFlight în câteva minute, iar de acolo îl poți trimite direct la review.

4. Trade-off-uri reale pe care trebuie să le știi

Sistemul auto-managed de la Expo e excelent, dar vine cu niște compromisuri de care trebuie să fii conștient:

  • Lock-in pe infrastructură: Dacă peste un an vrei să te muți pe un runner propriu de GitHub Actions fără Expo Cloud, va trebui să rulezi eas credentials și să faci export manual la toate certificatele și cheile private p12.
  • Capabilități native speciale: Dacă aplicația ta folosește Push Notifications, Apple Pay sau In-App Purchases, EAS le va activa automat în App ID, dar uneori mai dă gherle dacă schimbi pachetele native în app.json. Va trebui să dai eas credentials și să alegi opțiunea de resincronizare.
  • Timpul de așteptare pe free tier: În perioadele aglomerate, un build de iOS poate sta în coadă (queue) și 45 de minute pe tier-ul moca. Pentru un proiect comercial serios, abonamentul de 29$/lună e practic obligatoriu pentru că scade timpul de build sub 10 minute.

EAS Credentials auto-managed e opțiunea implicită pe care o folosesc acum la 90% din proiecte. Scapi de o grămadă de boilerplate și erori de certificat.

Voi mai aveți pipeline-uri vechi cu Fastlane și certificate salvate în repo-uri private sau ați trecut toți pe build-uri directe în cloud?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

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