{
"cli": {
"version": ">= 5.0.0"
},
"build": {
"production": {
"ios": {
"distribution": "store",
"enterpriseProvisioning": "adhoc"
},
"releaseChannel": "production",
"node": "20.10.0"
}
}
}Am lansat recent un MVP pentru un client cu vreo 5.000 de useri în pipeline și a trebuit să urcăm aplicația rapid pe App Store. Dacă ai mai făcut asta în trecut prin Xcode, știi bine ce coșmar pot fi certificatele, profilele de provizionare și identificatorii. Din fericire, în 2026, Expo EAS (Expo Application Services) face aproape toată treaba murdară în locul tău prin modul auto-manage.
Am reușit să scot primul build de producție gata de TestFlight în mai puțin de 20 de minute, fără să deschid Xcode-ul pe Mac. Hai să-ți arăt pașii exacți pe care i-am urmat și unde trebuie să ai grijă, pentru că există și câteva capcane.
Pasul 1: Pregătirea contului Apple Developer
Înainte să rulezi orice comandă în terminal, ai nevoie de un cont de Apple Developer activ (da, ăla de 99$ pe an). Recomandarea mea caldă este să folosești o cheie API (App Store Connect API Key) în loc de autentificarea clasică cu user și parolă.
De ce? Pentru că sesiunea cu 2FA expiră repede, iar dacă ai un pipeline de CI/CD, build-ul o să crape când ți-e lumea mai dragă. Te duci în App Store Connect -> Users and Access -> Integrations -> Keys, generezi o cheie cu acces de Administrator și descarci fișierul .p8 (ai grijă, îl poți descărca o singură dată).
Pasul 2: Configurarea eas.json
EAS are nevoie de instrucțiuni clare despre cum vrei să construiești aplicația. Am configurat un profil de producție în eas.json care să spună clar că vrem un build de tip app-store, optimizat la maximum.
Pasul 3: Magia din EAS CLI
Aici intervine magia de auto-manage. Deschizi terminalul în folderul proiectului și rulezi comanda de build pentru iOS indicând profilul de producție configurat anterior.
CLI-ul o să te întrebe cum vrei să gestionezi credențialele. Selectezi opțiunea "Let Expo handle your credentials".
Dacă ai configurat cheia API de la Pasul 1, EAS se va conecta direct la serverele Apple și va genera automat certificatul de distribuție (iOS Distribution Certificate), App ID-ul în portalul Apple și Provisioning Profile-ul corect, legat strâns de capabilitățile din app.json (cum ar fi push notifications sau iCloud).
Toate aceste resurse sunt salvate securizat în serverele Expo. Dacă lucrezi în echipă, colegii tăi vor putea rula build-uri fără ca tu să le mai trimiți fișiere .p12 sau profile descărcate manual.
Trade-off-ul sincer: Când NU e bun auto-manage?
Să fim sinceri, nu totul e roz în workflow-ul ăsta simplificat. Modul auto-manage de la Expo este genial pentru 90% din proiecte, dar are o mare problemă dacă ai integrări foarte custom sau native.
De exemplu, dacă ai o extensie de Safari integrată în app sau un Share Extension custom care cere un App Group specific și profile de provizionare multiple legate între ele, EAS auto-manage s-ar putea să dea erori complet criptice. În acel moment, singura soluție e să treci pe manual, să generezi profilele în Xcode sau în portalul Apple și să le uploadezi în EAS prin eas credentials.
Pentru majoritatea aplicațiilor hibride standard însă, procesul automatizat de la Expo salvează ore bune de frustrare.
Voi cum faceți în 2026? Ați lăsat complet controlul pe mâna celor de la Expo sau încă preferați să vă generați manual profilele în portalul Apple Developer?