Per un nuovo sviluppatore iOS, possono essere davvero confusi. Hai un'app che vuoi semplicemente che altre persone possano testare sul loro dispositivo, e vieni indirizzato al portale degli sviluppatori Apple con certificati, dispositivi e profili di provisioning. Prima che il tuo corpo vada in shock, leggi il resto di questo post per una spiegazione semplice di tutto.
La combinazione di certificati, dispositivi e profili di provisioning è la risposta di Apple a delle domande difficili:
D: Come puoi garantire che l'app che stai scaricando non sia stata modificata da qualche hacker e che sia effettivamente dello sviluppatore/azienda che dice di essere?
R: Certificati. Hai mai imparato qualcosa sulle email crittografate PGP? Quel business in cui c'è una chiave pubblica e una chiave privata? È quello che succede qui, tranne che sei astratto dal doverti preoccupare di quello grazie all'app Mac "Accesso Portachiavi". Quando aggiungi un nuovo certificato nel portale e segui le istruzioni per utilizzare "Accesso Portachiavi" per caricare una richiesta di certificato, "Accesso Portachiavi" utilizza la tua chiave privata per creare una chiave pubblica, che viene poi incorporata nella richiesta di certificato che viene inviata ad Apple. Apple ti restituisce un certificato che poi metti nel tuo portachiavi (ora puoi scaricarlo e aggiungerlo automaticamente tramite Xcode).
(Aggiornamento: sembra che tu possa far gestire i tuoi certificati/“Identità di firma” a Xcode anche nelle preferenze.)
Nota che ci sono certificati diversi per diversi scenari. I certificati di sviluppo vengono utilizzati quando si desidera far funzionare qualsiasi vecchia app (app id: *) e si sta sviluppando localmente e sul dispositivo di sviluppo collegato al computer. Un certificato AdHoc viene utilizzato quando si desidera consentire a pochi tester di installare l'app sul proprio dispositivo prima del rilascio pubblico su AppStore. I certificati AppStore e AdHoc sono legati a un'app specifica (app id) e di solito utilizzano il certificato di un'organizzazione, poiché il certificato è il modo in cui Apple sa cosa mostrare nella riga "Sviluppato da" nell'elenco dell'App Store.
D: Come possiamo consentire a un gruppo di tester di installare l'app sul proprio telefono e provarla prima di rilasciarla al mondo intero tramite l'App Store?
R: Dispositivi e profili di provisioning. Apple consente ai propri utenti di installare app solo tramite l'App Store. Ma quando sei uno sviluppatore e vuoi che alcune persone la provino prima che vada sull'App Store, devi utilizzare profili di provisioning e dispositivi.
Prima di tutto, devi far sì che qualcuno ti dia il proprio UUID del dispositivo (identificatore univoco universale), che di solito viene fatto tramite un servizio come Testflight o HockeyApp dove una persona può iscriversi per essere uno dei tuoi tester e il servizio ti invierà automaticamente via email il loro UUID. Per impedirti di aggirare l'App Store, Apple ti limita ad aggiungere solo 100 dispositivi in un anno al tuo account di sviluppatore iOS.
Poi crei un profilo di provisioning. Ogni profilo di provisioning incorpora un certificato per firmare l'app in modo sicuro da una persona/organizzazione specifica. I profili di provisioning dichiarano anche chi è in grado di installare la build dell'app. Nel caso di un profilo di provisioning dell'App Store, sta dicendo che quella build dell'app può essere installata da chiunque, purché venga scaricata tramite l'App Store.
Quando stai coinvolgendo alcuni tester, vorrai utilizzare un profilo di provisioning Ad Hoc (e certificato). Nella schermata "Modifica" del profilo di provisioning, sarai in grado di selezionare uno qualsiasi dei dispositivi elencati in "Dispositivi" nel tuo portale degli sviluppatori. Seleziona la casella accanto a quelli che desideri includere (Nota: puoi sempre selezionare o deselezionare di più o di meno in seguito).
Genera questo profilo, scaricalo manualmente o tramite le preferenze di Xcode, selezionalo quando archivi la tua app, e poi potrai caricare quel file .ipa su un servizio come Testflight per consentire ai tuoi tester di installarlo.
Alcune altre immagini guida:
- Fare in modo che Xcode scarichi automaticamente i profili di provisioning e i certificati per te:
- Aggiornamento del certificato ("Identità di firma") selezionato nelle impostazioni di build del progetto in Xcode: