Publicare aplicație iOS fără Mac: ghid Expo și EAS
De Mehdi Azizi
Actualizat pe , 9 min.
De pe un PC cu Windows, Expo și EAS compilează aplicația ta iOS și o trimit la Apple. Ce merge fără Mac, ce nu merge și de ce îți trebuie un iPhone.
Poți publica o aplicație iOS fără Mac?
Da. Poți publica o aplicație iOS fără Mac dacă o construiești cu Expo și React Native. EAS Build compilează aplicația pe Mac-uri găzduite de Expo, în cloud, iar EAS Submit o trimite apoi în App Store Connect. Documentația Expo o spune clar: EAS Submit funcționează pe macOS, Linux și Windows, deci nu ai nevoie de un Mac ca să livrezi un build iOS.
În schimb, îți trebuie trei lucruri pe care nimic nu le înlocuiește: un cont Apple Developer plătit, un iPhone ca să-ți testezi aplicația pe bune și un browser ca să completezi fișa în App Store Connect. Restul ghidului explică ce merge de pe un PC cu Windows, ce nu merge și ordinea pașilor.
Toate aplicațiile mele iOS trec prin același lanț: Expo, EAS Build, apoi EAS Submit. Solys și TradaZen au ajuns în App Store așa. Eu lucrez pe Mac, dar niciun pas al publicării nu depinde de el: build-urile se fac în cloud-ul Expo, iar trimiterea la Apple se face din linia de comandă.
Cum înlocuiesc Expo și EAS Mac-ul
Ca să înțelegi ce e posibil, trebuie să știi de ce Mac-ul era obligatoriu. O aplicație iOS trebuie compilată cu Xcode, unealta Apple, care rulează doar pe macOS, într-o versiune destul de recentă ca să eviți respingerea ITMS-90725. Apoi trebuie semnată cu un certificat legat de contul tău de dezvoltator și trimisă în App Store Connect.
Expo împarte munca asta în trei unelte:
- Expo și React Native: îți scrii aplicația în JavaScript sau TypeScript, pe orice calculator.
- EAS Build: rulezi comanda de pe PC, codul pleacă pe un Mac de la Expo, care compilează și semnează aplicația pentru tine. Primești un fișier gata de instalat sau de trimis.
- EAS Submit: ia build-ul ăsta și îl trimite în App Store Connect. După procesarea făcută de Apple, care verifică de exemplu iconița (ITMS-90717), apare în TestFlight.
Mac-ul există în continuare în lanț. Doar că nu mai e al tău. Dacă vrei să înțelegi de ce recomand stack-ul ăsta începătorilor, citește pagina React Native și Expo pentru o aplicație mobilă.
Ce poți face de pe un PC cu Windows
Să scrii codul aplicației
Toată dezvoltarea se face pe Windows fără restricții: editorul tău (VS Code, Cursor), Node.js, terminalul. Dacă scrii cod cu ajutorul lui Claude sau ChatGPT, nici aici nu se schimbă nimic. Pe tema asta, citește cum creezi o aplicație iOS cu AI.
Să-ți vezi aplicația pe iPhone în timp ce scrii codul
Ca să începi, aplicația Expo Go, instalată pe iPhone, citește un cod QR afișat în terminal și îți încarcă proiectul. Fiecare modificare apare pe telefon în câteva secunde. E ideal pentru primele ecrane. Din mai 2026, versiunea Expo Go din App Store rămâne pe SDK 54: creează-ți proiectul alegând compatibilitatea cu ea sau folosește eas go și TestFlight pentru un SDK mai recent.
Expo Go are o limită: conține doar modulele native oferite de Expo. Imediat ce aplicația ta folosește o bibliotecă nativă care nu e inclusă, cum ar fi SDK-ul RevenueCat pentru abonamente, îți trebuie un build de dezvoltare: o versiune proprie a aplicației, compilată de EAS Build, pe care o instalezi pe iPhone.
Să instalezi un build pe iPhone fără să treci prin App Store
EAS oferă distribuția internă. Îți înregistrezi iPhone-ul cu comanda eas device:create, apoi pornești un build cu distribuția internal. Primești un link de instalare. Apple limitează metoda asta: un cont poate distribui așa pe cel mult 100 de iPhone-uri pe an, iar fiecare dispozitiv nou cere un build nou sau o semnătură nouă. Pentru tine și câțiva apropiați, e mai mult decât suficient.
Să gestionezi certificatele fără Xcode
Semnarea e ce blochează cei mai mulți începători pe Mac, până la eroarea ITMS-90034 la trimitere. Cu EAS, te conectezi la contul Apple din linia de comandă, iar unealta poate genera singură certificatul de distribuție și profilul de provisioning. Nu deschizi niciodată Keychain Access.
Să trimiți aplicația la Apple și s-o publici
eas submit --platform ios trimite build-ul în App Store Connect. Poți și înlănțui cei doi pași cu opțiunea --auto-submit a lui eas build. Tot restul se întâmplă în browser: fișa din App Store, capturile de ecran, declarațiile de confidențialitate, abonamentele, TestFlight și trimiterea la review. App Store Connect e o aplicație web, merge foarte bine pe Windows.
Ce nu poți face (sau e mai greu) fără Mac
Simulatorul iOS local
Simulatorul iOS face parte din Xcode, deci nu rulează pe Windows. În practică, nu e grav: iPhone-ul tău e mai bun decât simulatorul pentru teste. În septembrie 2026, Expo a anunțat un simulator iOS în cloud, EAS Simulator, încă în acces limitat în momentul în care scriu. Nu-ți construi organizarea pe el până nu e deschis tuturor.
Depanarea codului nativ
Dacă un crash vine din codul nativ (Swift, Objective-C, o bibliotecă prost configurată), uneltele de diagnostic ale Apple sunt în Xcode. Fără Mac, depinzi de logurile de build EAS și de o unealtă ca Sentry, care raportează crash-urile aplicației instalate. Se poate, dar e mai lent. De aici avantajul de a rămâne, pentru o primă aplicație, la biblioteci compatibile cu Expo și întreținute, ceea ce te scutește și de o respingere ITMS-90338 la trimitere.
Extensii native scrise de mână
Widgeturi, extensii de notificări, target-uri native specifice: se pot face cu Expo datorită plugin-urilor de configurare, dar fără Xcode ca să inspectezi proiectul generat, fiecare eroare te costă încă un build. Pentru o primă aplicație, păstrează funcțiile astea pentru mai târziu.
Compilarea locală
Build-urile locale EAS (opțiunea --local) nu sunt suportate pe Windows. Pe PC, build-urile iOS trec deci prin cloud-ul Expo. Planul gratuit EAS include un număr limitat de build-uri pe lună, cu coadă de așteptare: verifică condițiile actuale pe pagina de prețuri Expo înainte să-ți planifici o săptămână de muncă intensă.
Contul Apple Developer: obligatoriu, fără excepție
Niciun truc nu ocolește punctul ăsta, nici măcar Apple Developer Enterprise Program, rezervat aplicațiilor interne ale organizațiilor mari. Fără abonament la Apple Developer Program, n-ai App Store Connect, n-ai TestFlight, n-ai distribuție internă și nu poți trimite în App Store. Abonamentul costă 99 $ pe an, încasați în moneda ta.
Două sfaturi înainte să te înscrii:
- Alege bine între cont individual și organizație. La individual, numele tău apare ca vânzător în App Store. La organizație, apare numele firmei, dar Apple cere atunci un număr D-U-N-S și o verificare mai lungă.
- Lasă-ți câteva zile. Validarea contului nu e mereu imediată. Înscrie-te imediat ce știi că vei publica, nu cu o zi înainte de trimitere.
De ce chiar ai nevoie de un iPhone pentru teste
Tehnic, poți publica o aplicație iOS fără s-o fi ținut vreodată în mână. Te sfătuiesc ferm să n-o faci, și Apple la fel: regulile de review (guideline 2.1) cer ca aplicația să fi fost testată pe un dispozitiv, pentru buguri și stabilitate, înainte de trimitere. Utilizatorii tăi, în schimb, vor avea doar asta: un iPhone adevărat.
Iată ce îți arată doar un iPhone adevărat:
- Prima lansare reală, fără server de dezvoltare: acolo se ascund crash-urile la pornire.
- Achizițiile in-app în mediul de test, ca să verifici că paywall-ul afișează prețurile corecte și că abonamentul deblochează aplicația.
- Notificările, camera, vibrațiile, permisiunile, care se comportă diferit sau deloc în altă parte.
- Layout-ul real: notch-ul sau Dynamic Island, bara home, tastatura care acoperă un câmp.
- Fluiditatea, pe care un calculator puternic o maschează adesea.
Un iPhone second-hand recent e suficient, cu condiția să ruleze o versiune de iOS suportată de versiunea ta de SDK Expo. Și dacă poți, împrumută și un iPhone de altă dimensiune: o aplicație care arată bine pe un ecran mare poate fi tăiată pe unul mic. Exact asta mi-a adus o respingere pentru Solys, povestită în de ce respinge Apple o aplicație.
Fără Mac, se poate. Fără iPhone, trimiți la Apple o aplicație pe care n-ai văzut-o niciodată funcționând.
Pașii, în ordine, de pe Windows
- Creează-ți proiectul cu
npx create-expo-appși testează primele ecrane cu Expo Go. - Instalează EAS CLI cu
npm install -g eas-cli, apoieas loginșieas build:configure. - Înscrie-te în Apple Developer Program imediat ce proiectul începe să prindă contur.
- Înregistrează-ți iPhone-ul cu
eas device:createși pornește un build de dezvoltare. - Creează fișa aplicației în App Store Connect, cu același bundle identifier ca în configurația Expo.
- Pornește build-ul de producție cu
eas build --platform ios. - Trimite-l cu
eas submit --platform ios, apoi testează-l în TestFlight. Ghidul TestFlight pentru testarea aplicației detaliază pasul ăsta. - Completează fișa și trimite la review din browser. Textul promoțional, în schimb, îl poți schimba ulterior fără versiune nouă.
Trei capcane apar des în etapa asta. Numărul de build trebuie să crească la fiecare trimitere: activează incrementarea automată din EAS ca să nu mai te gândești la ea. Întrebarea despre criptare blochează fiecare build până răspunzi la ea: o poți declara o dată pentru totdeauna în configurația aplicației. Iar bundle identifier-ul trebuie să fie identic peste tot, altfel EAS Submit nu-ți găsește aplicația. Pentru ce urmează, de la fișă la aprobare, pagina publicarea unei aplicații în App Store acoperă fiecare pas.
Publică-ți prima aplicație, fără Mac și fără să te pierzi
Mac-ul nu mai e adevăratul obstacol. Obstacolele reale sunt în altă parte: să alegi o aplicație care are șanse să aducă bani, să conectezi abonamente care funcționează, să pregătești un dosar pe care Apple îl acceptă. Asta acoperă parcursul în patru etape din iOS Kit, pe care îl urmezi în ritmul tău. Pentru dosar, Apple Review Kit adună checklist-ul meu dinainte de trimitere și notele pentru tester. Pagina principală arată cum să creezi o aplicație mobilă fără să pornești de la zero cu Expo și Claude Code, cu sau fără Mac.
Decizia finală de a-ți publica aplicația rămâne la Apple și niciun kit nu o poate garanta. Ce îți pot oferi e metoda pe care o aplic pe propriile mele aplicații.
Întrebări frecvente
Cum public o aplicație iOS fără Mac?
Cu Expo și React Native, un Mac găzduit de Expo îl înlocuiește pe al tău. Scrii codul pe orice calculator, EAS Build compilează și semnează aplicația în cloud, apoi EAS Submit o trimite în App Store Connect. Îți mai trebuie un cont Apple Developer plătit, un browser ca să completezi fișa și un iPhone ca să-ți testezi aplicația pe bune.
Care sunt pașii pentru a publica o aplicație iOS de pe Windows?
Creează-ți proiectul cu Expo, instalează EAS CLI și înscrie-te în Apple Developer Program. Înregistrează-ți iPhone-ul, pornește un build de dezvoltare, apoi creează fișa în App Store Connect cu același bundle identifier ca în configurația Expo. Pornește apoi build-ul de producție, trimite-l cu EAS Submit și testează-l în TestFlight, apoi completează fișa și trimite aplicația la review din browser.
Cât costă să publici o aplicație în App Store?
Abonamentul la Apple Developer Program costă 99 $ pe an, încasați în moneda ta. E obligatoriu: fără el n-ai App Store Connect, TestFlight, distribuție internă și nici trimitere în App Store. La Expo, planul gratuit EAS include un număr limitat de build-uri pe lună, cu coadă de așteptare: verifică condițiile actuale pe pagina de prețuri Expo.
Îmi trebuie un iPhone ca să public o aplicație iOS fără Mac?
Tehnic nu, dar te sfătuiesc ferm să nu faci asta, și Apple la fel: regulile de review (guideline 2.1) cer ca aplicația să fi fost testată pe un dispozitiv pentru buguri și stabilitate înainte de trimitere. Un iPhone second-hand recent e suficient, cu condiția să ruleze o versiune de iOS suportată de versiunea ta de SDK Expo.
Cum îmi testez aplicația iOS fără Mac?
Instalează aplicația Expo Go pe iPhone: citește un cod QR afișat în terminal și îți încarcă proiectul, iar fiecare modificare apare în câteva secunde. Expo Go conține doar modulele native oferite de Expo. Imediat ce aplicația ta folosește o bibliotecă nativă care lipsește, cum ar fi SDK-ul RevenueCat, îți trebuie un build de dezvoltare compilat de EAS Build. Ca să testezi build-ul final, citește TestFlight pentru testarea aplicației.
Care sunt limitele dezvoltării iOS fără Mac?
Nu poți folosi simulatorul iOS local: face parte din Xcode, deci nu rulează pe Windows. Build-urile locale EAS (--local) nu sunt suportate pe Windows: build-urile tale iOS trec prin cloud-ul Expo. Depanarea codului nativ și extensiile native scrise de mână rămân posibile, dar mai dificile, pentru că uneltele Apple sunt în Xcode.