Avevo già affrontato il processo di pubblicazione della mia app Expo su Google Play. Se hai letto quell’articolo, sai che Google Play e App Store sono due mondi molto diversi. Apple ha il proprio ecosistema, i propri strumenti, il proprio processo di revisione e modi particolari di rendere le cose difficili.
Questa è la mia guida passo passo per pubblicare un’app Expo sull’App Store di iOS, dalla creazione di un account Apple Developer fino al clic su “Invia per la revisione”. Include tutto ciò che avrei voluto sapere prima di iniziare.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Un progetto Expo funzionante (workflow gestito o bare)
- Un Mac, o l’accesso a uno. Apple richiede macOS per compilare nativamente le app iOS, anche se EAS Build può aggirare questo limite.
- Xcode installato (l’ultima versione stabile)
- Un ID Apple
❇️ Passaggio 1: iscriviti all’Apple Developer Program
Questo è il primo ostacolo. A differenza della tariffa una tantum di 25 $ di Android, Apple addebita 99 $ all’anno.
- Vai su developer.apple.com
- Fai clic su “Account” e accedi con il tuo ID Apple
- Iscriviti all’Apple Developer Program
- Inserisci i tuoi dati personali o dell’organizzazione
- Paga la quota di 99 $
Una volta approvato, avrai accesso ad App Store Connect e all’Apple Developer Portal, le tue due dashboard principali per tutto ciò che segue.
❇️ Passaggio 2: configura la tua app in App Store Connect
App Store Connect è il luogo in cui gestisci la scheda dell’app, le build, i prezzi e gli invii.
- Vai su appstoreconnect.apple.com
- Fai clic sul pulsante “+”, poi scegli “Nuova app”.
- Inserisci i dettagli dell’app:
- Piattaforma: iOS
- Nome: il nome visualizzato della tua app (sceglilo con attenzione; è difficile da cambiare)
- Bundle ID: deve corrispondere esattamente al valore nella configurazione di Expo
- SKU: un identificativo interno univoco
- Fai clic su “Crea”.
Il record della tua app è ora attivo in App Store Connect. Non c’è ancora nessuna build: solo il contenitore dell’app.
❇️ Passaggio 3: configura il progetto Expo per iOS
Apri app.json (o app.config.js) e assicurati che la sezione iOS sia completa:
{
"expo": {
"name": "Your App Name",
"slug": "your-app-slug",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.yourname.yourapp",
"buildNumber": "1",
"supportsTablet": true,
"infoPlist": {
"NSCameraUsageDescription": "We need camera access to...",
"NSPhotoLibraryUsageDescription": "We need photo access to..."
}
}
}
}Cose fondamentali da ricontrollare:
- bundleIdentifier deve corrispondere esattamente al valore registrato in App Store Connect.
- Incrementa buildNumber a ogni caricamento, anche se la versione resta la stessa.
- Aggiungi a infoPlist ogni permesso usato dalla tua app, con una descrizione chiara. Apple può rifiutare l’app se mancano o sono vaghi.
❇️ Passaggio 4: gestisci certificati e provisioning profile
Qui Apple si differenzia di più da Android ed è dove molti sviluppatori perdono ore. Ti servono due cose:
- Un Distribution Certificate, che dimostra che la build proviene da te
- Un Provisioning Profile, che collega il Bundle ID della tua app al certificato e autorizza la distribuzione
Opzione A: lascia che se ne occupi EAS (consigliata)
Se usi EAS Build, può gestire tutto questo automaticamente:
npx eas-cli credentialsEAS ti chiederà di accedere al tuo account Apple, poi genererà e memorizzerà tutto per te.
Opzione B: procedi manualmente con Xcode o l’Apple Developer Portal
- Nell’Apple Developer Portal, apri Certificates, IDs & Profiles.
- Crea un nuovo iOS Distribution Certificate.
- Crea un App ID che corrisponda al tuo Bundle Identifier.
- Crea un Distribution Provisioning Profile che colleghi i due.
💡 Lezione imparata: quando possibile, evita di mantenere più certificati di sviluppatore. Apple limita quanti ne puoi avere per account e revocare un certificato invalida tutti i provisioning profile che lo usano.
❇️ Passaggio 5: compila la tua app
Con EAS Build (consigliato)
npm install -g eas-cli
eas login
eas build:configureConfigura eas.json per la produzione:
{
"build": {
"production": {
"ios": {
"distribution": "store"
}
}
}
}Poi avvia la build:
eas build --platform ios --profile productionEAS compila la tua app nel cloud, gestisce la firma del codice e fornisce un file .ipa pronto da caricare. Per questo passaggio non serve un Mac.
Con Xcode (build locale)
npx expo run:ios --configuration ReleaseOppure apri la cartella ios/ in Xcode, seleziona “Any iOS Device” come destinazione e scegli Product → Archive.
❇️ Passaggio 6: carica la build su App Store Connect
Opzione A: EAS Submit (la più semplice)
eas submit --platform ios --latestOpzione B: Transporter: scaricalo dal Mac App Store, accedi, aggiungi il file .ipa e fai clic su “Deliver”.
Opzione C: Xcode Organizer: dopo l’archiviazione, apri Window → Organizer, trova il tuo archivio e scegli Distribute App → App Store Connect → Upload.
❇️ Passaggio 7: testa con TestFlight
Prima di inviare l’app all’App Store, testala sempre con TestFlight.
- In App Store Connect, apri TestFlight.
- Dopo l’elaborazione della build, aggiungi i tester interni (fino a 100 persone del tuo team).
- Per i tester esterni, invia prima la richiesta di Beta App Review (di solito 1–2 giorni).
❇️ Passaggio 8: prepara la scheda dell’App Store
Apple richiede tutto quanto segue prima di poter inviare l’app:
- Nome (fino a 30 caratteri) e sottotitolo (fino a 30 caratteri)
- Categoria (principale e secondaria facoltativa)
- URL dell’informativa sulla privacy (obbligatorio)
- Descrizione (fino a 4.000 caratteri; fai in modo che le prime righe contino)
- Parole chiave (fino a 100 caratteri in totale, separate da virgole)
Screenshot: Apple richiede dimensioni specifiche:
- iPhone da 6,9 pollici (iPhone 16 Pro Max): obbligatorio
- iPhone da 6,7 pollici (iPhone 14 Plus / 15 Plus): facoltativo, ma consigliato
- iPad Pro da 13 pollici (M4): obbligatorio se la tua app supporta iPad
❇️ Passaggio 9: imposta prezzo e disponibilità
- Apri Prezzi e disponibilità.
- Scegli Gratis oppure imposta una fascia di prezzo.
- Seleziona i territori in cui vuoi distribuire l’app (per impostazione predefinita sono tutti).
- Imposta una data di disponibilità (facoltativo).
❇️ Passaggio 10: compila il questionario sulla privacy dell’app
Apple richiede di dichiarare le tue pratiche sui dati. Queste informazioni diventano la Privacy Nutrition Label nella pagina dell’App Store. In App Store Connect, apri Privacy dell’app e rispondi onestamente: quali dati raccogli, se sono collegati all’identità dell’utente e se vengono usati per il tracciamento.
❇️ Passaggio 11: invia per la revisione
In Informazioni per la revisione, lascia una nota per il revisore Apple. Se la tua app richiede un accesso, fornisci qui le credenziali di prova. Poi scegli Aggiungi per la revisione → Invia ad App Review.
❇️ Passaggio 12: pubblica!
Una volta approvata, lo stato della tua app diventa “Pronta per la vendita”. Durante l’invio scegli una di queste opzioni:
- Rilascio manuale: decidi tu quando l’app va online.
- Rilascio automatico: l’app va online non appena viene approvata.
🎉 Congratulazioni: la tua app è sull’App Store.
❇️ In conclusione
Il processo dell’App Store è più opaco di quello di Google Play, ma le release successive diventano molto più fluide dopo la prima. Le maggiori perdite di tempo sono:
- Certificati e provisioning: lascia che se ne occupi EAS.
- Screenshot: dedica tempo di design vero a questi.
- La prima revisione: calcola 1–3 giorni e assicurati che nulla vada in crash.
L’ecosistema Apple ha una curva di apprendimento più ripida, ma il pubblico dell’App Store è prezioso e i suoi standard di qualità giocano a tuo favore una volta dentro. Buona pubblicazione! 🚀
Se l’hai trovato utile, ho scritto anche Pubblicare la mia app Expo su Google Play : lo stesso trattamento passo passo per Android. Puoi trovare le mie app anche su vladsiu.com.
