{
"cli": {
"version": ">= 12.0.0"
},
"build": {
"production": {
"autoIncrement": true,
"ios": {
"simulator": false
}
}
},
"submit": {
"production": {
"ios": {
"appleId": "dev@domeniu.ro",
"ascAppId": "6471234567"
}
}
}
}Lansarea primei aplicații iOS în App Store e mult mai puțin dureroasă decât era acum câțiva ani, dar tot poți să-ți prinzi urechile în certificate. Dacă folosești Expo și EAS (Expo Application Services), opțiunea de auto-manage îți salvează ore bune de configurări manuale în Apple Developer Portal. În postarea asta îți arăt pașii preciși prin care am trecut săptămâna trecută când am urcat un build de producție pentru un client.
Prerechizite reale (fără de care te blochezi)
Înainte să dai vreo comandă în terminal, ai nevoie de un cont plătit de Apple Developer (ăia 99$ pe an de care nu scapi). Nu încerca pe cont gratuit sau sandbox, că te oprești la primul pas de semnare.
Ai nevoie de CLI-ul EAS instalat global și să fii logat în contul tău Expo. Dacă ai proiectul configurat curat, rulezi doar eas build:configure și ești gata de pasul următor.
Configurația din eas.json
Fișierul eas.json trebuie să fie simplu. Nu încărca fișierul cu flag-uri inutile dacă ești la prima lansare. Trucul meu este să pun mereu autoIncrement: true pe buildNumber, altfel Apple îți va respinge build-ul la upload dacă uiți să schimbi versiunea manual.
Rularea build-ului și magia Auto-Manage
Rulezi comanda directă în terminal: eas build --platform ios --profile production.
Aici intervine partea unde economisești timp. CLI-ul te va întreba dacă vrei ca Expo să se ocupe automat de gestionarea certificatelor (Do you want EAS to manage your credentials?). Răspunzi cu Yes.
O să-ți ceară autentificarea în contul de Apple Developer. Recomand să folosești un App Store Connect API Key generat din panoul Apple, mai ales dacă lucrezi într-o echipă. Dacă ești solo, merge și cu Apple ID + parola specifică pentru aplicații (App-Specific Password).
EAS va executa automat în fundal:
- Crearea unui Apple Distribution Certificate.
- Înregistrarea Bundle Identifier-ului în contul tău Apple.
- Generarea și semnarea unui Provisioning Profile de producție.
La ultimul build executat marțea trecută, tot procesul ăsta automatizat a durat fix 7 minute. Rezultatul final a fost un fișier .ipa gata de trimis în store.
Trade-off: Unde se rupe filmul cu auto-manage?
Auto-managementul e genial în 90% din cazuri, dar are și limitări de care m-am lovit pe proiecte mai mari.
Dacă aplicația ta folosește capabilități speciale (de exemplu: Push Notifications speciale, App Groups pentru Widget-uri sau Apple Pay), EAS s-ar putea să nu le activeze automat în portalul Apple. În scenariul ăsta, trebuie să intri o singură dată manual pe developer.apple.com, să bifezi capabilitatea pe App ID, iar apoi să rulezi eas credentials în terminal ca să resincronizezi profilele.
De asemenea, dacă ai o echipă hibridă unde unii dezvoltatori lucrează direct în Xcode native și alții în Expo, gestionarea automată făcută de EAS poate suprascrie certificatele generate de Xcode dacă nu ești atent.
Trimiterea în App Store Connect
După ce build-ul s-a terminat cu succes pe serverele Expo, nu mai descărca arhiva local ca să o urci cu Transporter. Folosește direct comanda eas submit --platform ios.
Va lua ultimul build generat din cloud și îl va împinge direct în TestFlight. În aproximativ 10-15 minute o să primești mail-ul de la Apple că build-ul a fost procesat și e gata de testare sau trimitere la review.
Automatizarea asta ne-a salvat cel puțin 4 ore de configurat manual certuri .p12 și mobileprovision cum făceam pe vremuri. Voi mai gestionați certificate manual în vreun proiect sau ați trecut toți pe EAS / Fastlane?