2014-09-18 20 views
19

In iOS 6 o 7, l'app esce sulla schermata iniziale quando chiamo UIApplication openUrl con un URL itms-services://XXXX per installare una nuova versione della mia app (utilizzando la distribuzione aziendale con file ipa).ios 8 openUrl itms-services non esce dall'app corrente

In iOS 8, questo non è più il caso. Ora l'app continua a funzionare proprio come non è successo nulla, ma se vado alla schermata iniziale, posso vedere l'icona della mia app disattivata, con un grafico a torta di download completato al 66% e il testo "Downloading..." qui sotto. Se ora attendo qualche istante (meno di un minuto), l'applicazione è installata correttamente e posso riavviare la mia app.

Qualcun altro ha riscontrato questo comportamento? Qualcuno ha visto alcuna documentazione in merito? Posso accettare modifiche comportamentali finché è documentato, ma non ho visto alcuna documentazione in merito.

+0

Sto vivendo le stesse "difficoltà". Abbiamo creato un'app per fornire app distribuite in-house (tipo di AppStore interno). In iOS7 hai ricevuto notifiche per la finestra di dialogo del sistema che chiede all'utente, se si desidera installare un'app. In iOS 8 queste notifiche non vengono più inviate. In precedenza, era possibile avviare un timer e eseguire il polling dello schema URL previsto dell'applicazione da installare per fornire un indicatore di attività all'utente. Con iOS8 non riesco nemmeno a distinguere se l'utente ha scelto di annullare l'installazione. :(Non ho trovato alcuna documentazione anche su questo – Christian

risposta

0

Sì, si ottiene lo stesso comportamento quando si fa clic su un collegamento di download in Safari ora su iOS8.

io non sono sicuro perché hanno introdotto questo cambiamento, ma non c'è davvero un modo intorno ad esso (a meno che non si forza la vostra applicazione in crash con qualcosa di simile exit(0);)

Inoltre, lo schema URL itms-services è documentato e è tecnicamente una API privata. Per esperienza, non ti è consentito inviare app all'App Store che la utilizzano.

+0

Isms-services non documentato? C'era documentazione precedente su http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html ma quel collegamento è morto ora, Apple ha rimosso tutta la documentazione di itms-services? Non riesco a trovarlo da nessuna parte! Il deprecare la roba è una cosa, ma nasconderlo è semplicemente CATTIVO. –

+0

Sì, non va bene ... pensavo di ricordare di aver visto qualcosa di molto tempo fa, ma non l'ho mai più ritrovato, supponendo che forse quello che ho visto non fosse un documento ufficiale Apple ... È davvero strano per la documentazione, quando è stato introdotto iOS7 hanno reso obbligatorio che i manifesti fossero link https ma non t davvero chiaro. – liamnichols

+0

Sono abbastanza sicuro che ci fosse una documentazione ufficiale su questo, anche Xamarin (che sto usando) ha un link alla stessa pagina che ora è morto: http://developer.xamarin.com/guides/ios/deployment,_testing , _and_metrics/app_distribution_overview /. –

0

Ho sperimentato una cosa simile. Ho una pagina web per il nostro app store interno e quando tocco il link ricevo un messaggio di richiesta se voglio installarlo e quando dico si, il safari è solo lì. L'app viene scaricata nella schermata principale, ma in IOS 7 safari viene spostata in background e puoi vedere dove si scarica la tua app e il suo avanzamento. Ora sembra che non stia succedendo nulla. Mi piacerebbe correggere questo. Forse qualcosa è cambiato nei file .plist utilizzati dal protocollo itms-services. Questo protocollo non è privato, è solo riservato alle distribuzioni aziendali.

6

Mentre forzare l'arresto anomalo dell'app funzionerà tecnicamente, una soluzione molto migliore (che consente all'utente di mantenere lo stato dell'applicazione) sarebbe semplicemente lo sfondo dell'applicazione che lancia il collegamento itms-servizi eseguendo quanto segue.

[[UIApplication sharedApplication] performSelector:@selector(suspend)]; 

Usiamo questo in un'applicazione utilizzata per la distribuzione di test build per i nostri tester e funziona molto bene, ed elimina la confusione di un tester tenta di installare un app e avendo il soggiorno app di fronte. Permette anche a loro di tornare alla nostra app di distribuzione e farlo riprendere dove erano.

+0

Impressionante .. Presumo che questa sia un'API privata? Ovviamente non è un problema ma volevo solo confermarlo ... Lo chiami immediatamente dopo aver chiamato 'openURL:'? Solo perché non ero sicuro se il popup di installazione sarà ancora mostrato se fosse il caso? – liamnichols

+1

Sì, subito dopo openURL: il popup verrà comunque mostrato, in genere dopo che l'app è stata sospesa. Lo facciamo solo per iOS 8 e versioni successive, poiché non è necessario sospendere l'app nelle versioni precedenti. Non userei la chiamata in un'app che va al negozio, ma se la tua app sta installando altre app, non ti consiglio di provare a metterla nell'app store comunque. – wottle

+0

Cosa succede se ho lo stesso problema ma utilizzo il browser Safari? – Mike