2012-06-28 10 views
5

Sto provando ad installare un'app per iOS da un plist sul filesystem del dispositivo.L'installazione di app iOS da un plist locale (null) vorrebbe installare

NSString *launchNewPlistURL = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=file://%@",[self saveFilePath]]; 
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:launchNewPlistURL]]; 

E viene richiesto "(null) desidera installare {myappname}". Di solito (null) è il nome di dominio da cui proviene il plist, ma in questo caso è nullo in quanto è un file locale.

È comunque necessario specificare il titolo nel plist o passare un nome di dominio falso nell'URL?

Grazie, Dan

risposta

3

È possibile utilizzare il progetto MongooseDaemon di creare un server locale HTTP.

Con un dominio simile a: http://192.168.xxx.xxx/yourplist.plist per installarlo.

In ogni caso, penso che non si possa usare con un IPA di grandi dimensioni. Ho provato con il mio IPA maggiore di 15 MB ed è molto, molto lento per avviare l'installazione.

+0

La dimensione del file non dovrebbe essere un problema enorme, in quanto solo il plist avrebbe bisogno di essere ospitato da MongooseDaemon, e l'IPA potrebbe ancora vivere altrove sul web. – fischerdan

2

Mi trovavo in una situazione simile e ho iniziato a utilizzare Mongoose in origine, ma solo oggi sono incappato in CocoaHttpServer.

Con Mongoose, ottenevo solo una percentuale di successo del 20% al servizio di file plist/IPA locali. A volte la finestra di dialogo localhost would like to install non si presentava mai, a volte l'installazione è iniziata e ha avuto esito negativo a metà strada e talvolta ha funzionato. Ancora peggio, una volta che un'app falliva, dovevo disinstallarla e reinstallarla completamente, quindi tutti i dati andarono persi. Non sono mai riuscito a "riparare" correttamente un'installazione fallita.

Finora, con soli 10-15 minuti di test, il CocoaHttpServer non ha ancora fallito. So che questo è un campione molto piccolo, ma il mio tasso di successo di Mongoose era di circa il 10%.

self.httpServer = [[HTTPServer alloc] init]; 
[self.httpServer setType:@"_http._tcp."]; 
[self.httpServer setPort:8080]; 
//This is just a path where I save my IPA and Plist file locally. 
//In my case it's /{NSDocumentDirectory}/install/ 
[self.httpServer setDocumentRoot:[self pathForLocalInstallFiles]]; 

Poi l'URL del plist sul disco:

NSURL *plistUrl = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=http://localhost:8080/appname.plist"]; 
[[UIApplication sharedApplication] openURL:plistUrl]; 

All'interno del plist, dove avete il vostro URL che punta al file IPA locale, ho avuto successo utilizzando file:// o http://localhost/.

Problemi correlati