{
"cli": {
"version": ">= 12.0.0"
},
"build": {
"production": {
"autoIncrement": true,
"ios": {
"simulator": false
}
}
},
"submit": {
"production": {
"ios": {
"appleId": "dev@company.ro",
"ascAppId": "6400000000"
}
}
}
}Am lansat luna trecută un app pentru o platformă e-commerce cu vreo 12k utilizatori activi și, ca de obicei, când a venit vorba de iOS, echipa s-a panicat. Dacă ultimele tale amintiri cu App Store implică ore pierdute în Apple Developer Portal, exportat fișiere .p12 din Keychain Access și erori inexplicabile de Provisioning Profile, am o veste bună. Prin Expo EAS Build, gestionarea certificatelor pe iOS a devenit aproape complet invizibilă.
De ce să lași EAS să-ți gestioneze certificatele?
Acum doi ani am pierdut o jumătate de zi de producție pentru că un certificat de distribuție expirase tăcut, iar build-ul din CI/CD crăpa direct la faza de codesign. Cu sistemul auto-manage oferit de Expo Cloud, tipul ăsta de eroare e practic eliminat.
EAS se conectează la App Store Connect via API key și își generează singur:
- Distribution Certificates
- Provisioning Profiles
- Push Notification Keys
- Bundle Identifier (dacă nu există deja)
Trade-off-ul sincer? Ești dependent de infrastructura Expo și de permisiunile pe care le dai în contul tău Apple. De asemenea, dacă aplicația ta folosește target-uri native mai exotice (cum ar fi Apple Watch companion apps sau Widget Extensions foarte specifice), automanage-ul standard s-ar putea să mai scârțâie și va trebui să adaugi configurări extra în eas.json. Însă pentru 95% din aplicațiile de pe piață, funcționează impecabil din prima.
Pașii exacți pentru prima lansare
Procesul pe care l-am urmat eu e simplu și curat:
1. Creează un App Store Connect API Key
Mergem în Apple Developer Account -> Users and Access -> Integrations -> App Store Connect API. Generăm o cheie cu rol de Admin sau App Manager. Descarcă fișierul .p8 (atenție, îl poți descărca o singură dată) și notează-ți Key ID și Issuer ID.
2. Configurează profilul în eas.json
Ai nevoie de un profil de build pentru producție. Asigură-te că ai parametrul autoIncrement setat pe build number ca să nu stai să schimbi manual versiunea la fiecare încercare.
3. Rulează primul build interactiv
Lansează din terminal comanda:
eas build --platform ios --profile production
Aici intervine partea faină. CLI-ul te va întreba direct dacă vrei ca EAS să se ocupe de credentials. Selectezi opțiunea de a introduce cheia API generată la pasul 1. Odată validate credențialele, EAS va detecta că nu ai certificate configurate pentru proiect și te va întreba: "Do you want EAS to manage your credentials?". Răspunzi cu Yes.
În spate, CLI-ul creează distribuția pe contul tău Apple în mai puțin de 60 de secunde. La proiectul meu am salvat cel puțin 3 ore de configurat manual și citit documentație veche pe StackOverflow.
Trimiterea automată în TestFlight
După ce build-ul s-a terminat cu succes pe serverele Expo, nu mai trebuie să descarci fișierul .ipa ca să-l urci cu Transporter. Rulezi direct:
eas submit --platform ios --latest
Comanda își va trage automat toate token-urile din contul Expo și va trimite pachetul direct în TestFlight. În aproximativ 10-15 minute, build-ul apare pregătit pentru testare internă sau pentru trimiterea spre revedere la echipa Apple.
Voi ce abordare folosiți la proiectele de React Native – lăsați EAS să-și facă de cap sau preferați să vă gestionați singuri certurile în Fastlane sau Keychain?