Perché l'attuale processo di provisioning per lo sviluppo di iPhone è implementato così com'è?

4

Dato il gran numero di esempi di problemi con i passaggi manuali necessari per il provisioning di dispositivi e l'installazione di app utilizzando l'SDK per sviluppatori, mi chiedo perché Apple abbia seguito questa strada.

In particolare, il processo sembra essere soggetto a errori e potrebbe essere probabilmente automatizzato.

Questo è solo un rito di passaggio o ci sono motivi per implementarlo in questo modo che mi manca?

  • Ci sono dei motivi per cui alcuni di questi passaggi devono essere manuali?
  • Qualcuno vede un modo per migliorare questo o qualcuno sa di alcuni automatismi / script che rendono questo più semplice per gli sviluppatori nuovi sulla piattaforma?
posta Tim 24.01.2011 - 04:14
fonte

3 risposte

7

Il problema più grande è la generazione della chiave. La sicurezza fondamentale di iOS è che solo le app firmate possono essere eseguite sui tuoi dispositivi, a meno che tu non abbia eseguito il jailbreak e installato un pacchetto per ignorarlo, in genere per la distribuzione senza licenza o la pirateria delle app.

Devi generare una chiave in base all'autorità di certificazione di Apple o CA. Quindi lo carichi sul portale e Apple lo approva, a condizione che tu sia uno sviluppatore pagato. Ogni volta che si distribuisce un'app, che si tratti del negozio o del dispositivo per il test, si firma l'app con la propria firma digitale, supportata da Apple. Questo dice al tuo dispositivo, o ai dispositivi dei tuoi tester o clienti, che l'app proviene da uno sviluppatore che è chi dice di essere. Poiché il modo principale per ottenere un'app sul tuo dispositivo è attraverso lo store, hai la certezza che non è manomesso (dal momento che la firma dello sviluppatore non è valida con il flip di un singolo bit nell'app) e che è passato attraverso Apple controlla essendo ospitato nel negozio. Questa è una doppia garanzia della sicurezza.

I profili di provisioning sono un'intera altra bestia. In precedenza, Apple ti permetteva di "caricare il sideload" su qualsiasi numero di dispositivi che volevi. Ciò significava che si poteva ignorare l'App Store e vendere le app da soli come download, non diversamente dalle app desktop. Apple non l'ha approvato e da allora lo ha limitato a 100 dispositivi all'anno elencati su un singolo account per sviluppatori. Aggiungi i tuoi dispositivi al portale tramite il suo UDID, si tratta di un'impronta digitale univoca e dovresti ottenerlo da qualsiasi dispositivo a cui desideri sottoporre a test beta l'app o la distribuzione ad hoc. Dato che costa circa $ 0,99 all'anno / dispositivo, è proibitivo vendere le app in questo modo, ma ti permette di avere un sacco di slot per i beta test. Ovviamente, un profilo di provisioning è l'elenco di quali dispositivi possono eseguire quali app firmate da chi sviluppatore.

Negli ultimi Xcode, una volta che hai stabilito la tua chiave (che sarebbe difficile da automatizzare dall'interno di Xcode), puoi collegare qualsiasi iDevice, aprire l'organizer e fare clic su "Usa per lo sviluppo". Xcode richiederà le tue credenziali e quindi aggiungerà automaticamente il dispositivo al portale e creerà un profilo di provisioning per te. Una volta completata la configurazione iniziale, è fondamentalmente un clic aggiungere un dispositivo aggiuntivo. Non credo che Apple sia preoccupata del fatto che l'installazione iniziale sia automatizzata, dal momento che è solo una procedura unica.

(Scusate, sto cercando di lavorare sulla mia longevità.)

    
risposta data 24.01.2011 - 08:14
fonte
4

Il servizio gratuito TestFlight ha lo scopo di aiutare con la distribuzione delle app di prova, anche se non so se rende più facile testare da solo dispositivo.

    
risposta data 24.01.2011 - 04:31
fonte
-1

Non ho visto molte speculazioni sul motivo per cui è così diverso da dire che probabilmente è progettato pensando al dispositivo e alla sicurezza dell'utente per mantenere il "riff raff" fuori dal processo (es. creatori di software dannoso). Tuttavia, siete in buona compagnia con le vostre frustrazioni su come funziona l'intero processo. Per quanto posso dire, al di fuori di predisporre un dispositivo per test locali e cablati, non c'è modo di automatizzare tutto ciò.

Alla fine, questa è la decisione di Apple, e non hanno mai detto perché è così. C'est la vie.

    
risposta data 24.01.2011 - 18:21
fonte

Leggi altre domande sui tag