2009-12-14 13 views
9

Ho dato una versione ad hoc della mia app ad alcuni utenti. Due di loro hanno l'app muore all'avvio mentre un utente non ha problemi. Posso anche installare l'ad hoc senza problemi ... ma questo è sempre il mio caso. Un utente ha inviato le informazioni di seguito dalla console Xcode Organizer. Non hanno trovato nessun registro di crash. Non so cosa fare delle informazioni qui sotto. L'unica cosa che spicca è "Autorizzazione negata".L'applicazione muore all'avvio ma non il rapporto di arresto anomalo

Posiziono i file provisioning e myapp.app in una cartella dropbox. L'utente quindi recupera i file dalla stessa posizione. Ho eseguito codesign contro il file .app nel set e ottenere di uscita valido:

codesign -vvvv myapp.app 
myapp.app: valid on disk 
myapp.app: satisfies its Designated Requirement 

Qualunque ha alcune idee come posso capire perché l'applicazione non funziona per questo utente?

Ecco l'output della console da un utente. Non è stato possibile trovare alcun registro di arresto anomalo associato:

Stats 
totalMLSITDBPostProcessing=5.31s 
commands=0.01 
misc=0.45s 
icuSort=4.41s (MLS_icu_data=0.23s, MLS_icu_sec_data=0.13, dropIdx=0.04, normalize=0.13, update_orders=1.31, tStatsICUOther1=0.02, createIndex=2.50) 
Sun Dec 13 12:35:04 unknown com.apple.launchd[1] <Error>: (UIKitApplication:com.cygen.myapp[0x8cb6]) posix_spawn("/var/mobile/Applications/4B036396-3294-4E0A-BBCC-4118E72846D4/myapp.app/myapp", ...): Permission denied 
Sun Dec 13 12:35:04 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x8cb6]) Exited with exit code: 1 
Sun Dec 13 12:35:04 unknown SpringBoard[24] <Warning>: Failed to spawn myapp. Unable to obtain a task name port right for pid 179: (os/kern) failure 
Sun Dec 13 12:35:04 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x8cb6]) Throttling respawn: Will start in 2147483647 seconds 
Sun Dec 13 12:35:04 unknown SpringBoard[24] <Warning>: Application 'myapp' exited abnormally with exit status 1 
Sun Dec 13 12:35:10 unknown springboardservicesrelay[155] <Warning>: Unable to parse property list data of length: 0 
Sun Dec 13 12:35:13 unknown com.apple.launchd[1] <Error>: (UIKitApplication:com.cygen.myapp[0x3ce5]) posix_spawn("/var/mobile/Applications/4B036396-3294-4E0A-BBCC-4118E72846D4/myapp.app/myapp", ...): Permission denied 
Sun Dec 13 12:35:13 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x3ce5]) Exited with exit code: 1 
Sun Dec 13 12:35:13 unknown SpringBoard[24] <Warning>: Failed to spawn myapp. Unable to obtain a task name port right for pid 182: (os/kern) failure 
Sun Dec 13 12:35:13 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.cygen.myapp[0x3ce5]) Throttling respawn: Will start in 2147483647 seconds 
Sun Dec 13 12:35:13 unknown SpringBoard[24] <Warning>: Application 'myapp' exited abnormally with exit status 1 
+0

Quali dispositivi e le versioni del sistema operativo sono gli utenti in esecuzione su? –

risposta

7

La distribuzione ad-hoc è notoriamente complicata. Se hai perso una cosa, l'intera catena fallisce. Ecco quello che mi viene in mente, la parte superiore della mia testa, sulla base del fatto che funziona per almeno uno dei tuoi utenti:

  1. Siete certi che il certificato di provisioning ad hoc cellulare contiene l'UDID per gli utenti che lo vedono falliscono?
  2. Questi utenti hanno un vecchio certificato sul proprio dispositivo? (cioè hai cancellato il certificato esistente prima di installarne uno nuovo? Impostazioni-> Generale-> Profili)
  3. Sei sicuro che il pacchetto .app firmato con codice contenga gli UDID per quegli utenti, all'interno del file denominato embedded.mobileprovisioning? (Sotto la chiave ProvisionedDevices)
  4. Il certificato di provisioning mobile è scaduto?
  5. Il certificato del codice di identificazione dello sviluppatore è scaduto?
  6. Il pacchetto dell'applicazione è stato rinominato dall'utente prima dell'installazione?
  7. Hai provato a fare una pulizia prima di eseguire la distribuzione?
+0

Grazie. Questi sono buoni suggerimenti. Non sapevo di # 3. Ho visto che l'UDID di un utente non era presente nel file .app ma si trovava nel file di provisioning autonomo. Li farò riprovare e poi lavorerò con l'altro utente. L'utente può semplicemente rilasciare il file .app aggiornato in iTunes o ha anche bisogno del file di provisioning, che non è cambiato. Sto indovinando se si aggiorna il file di provisioning, hanno bisogno di entrambi, ma se si aggiorna solo l'app, non è necessario rilasciare nuovamente il file di provisioning. – user230949

+1

Sì, ogni utente a cui si vuole dare una build ad hoc deve avere un certificato di provisioning mobili ad-hoc e, con l'accumulo di essere firmato con la stessa cert. Non c'è modo di aggirare questo. Ma lei ha ragione, una volta che l'utente ha il CERT e ti ha detto che è possibile eseguire una build, è necessario solo per inviare loro aggiornati costruisce in futuro (ma ancora una volta, a patto che queste build sono stati realizzati con lo stesso CERT). –

+0

L'utente ha segnalato che sta avendo la stessa identica esperienza. Hanno inviato un output della console aggiornato e vedo lo stesso errore di autorizzazione negato. Non riesco a continuare a pingare l'utente in questo modo per ovvi motivi. Hai qualche idea su come posso riproporlo sul mio dispositivo? Potrei quindi risolverlo. – user230949

0

Provare a utilizzare l'utilità di configurazione iPhone, un download gratuito da Apple. Ho avuto lo stesso problema, disinstallato e installato usando l'iPCU e ora funziona perfettamente.

Non è intuitivo da usare, provare a cercare su google i profili di provisioning per iCPU. Ho trovato istruzioni dettagliate su un "blog per sviluppatori di redfin".

1

La parola chiave che penso tu abbia usato è la parola "dropbox". Ho appena trascorso le ultime 2 settimane cercando di capire che la mia app non avrebbe funzionato su altre macchine e ho capito che è perché ho distribuito l'app tramite DropBox senza comprimerlo.

Prova a mettere l'app in un file zip prima di caricarla su DropBox. Chiedere agli utenti di scaricare il file zip, decomprimerlo e installare l'app.

La mia ipotesi è che DropBox stia riempiendo alcuni dei file nel pacchetto dell'app.

1

Sì, abbiamo avuto lo stesso problema con DropBox ... zip il file prima.

0

dom 13 dicembre 12: 35: 04 sconosciuto SpringBoard [24]: Impossibile spawnare myapp. Impossibile ottenere un diritto compito di porta nome per pid 179: (OS/Kern) fallimento

ho combattuto questo per qualche tempo, e nel mio caso è stato un risultato del nostro sistema di build usando una zip diverso routine che non rispettava i fork delle risorse di OSX. Non ne so molto di loro, ma in breve sono un costrutto HFS per memorizzare metadati aggiuntivi su un file/dir nascosto dalla maggior parte degli strumenti. La compressione con il finder sembra funzionare, così come lo ditto. Maggiori informazioni qui: http://xahlee.org/UnixResource_dir/macosx.html

1

Dropbox anche per me, zip e ha funzionato bene.

1

Garantire l'eseguibile ha lo stesso nome nella versione aggiornata. Ho trovato se questi non corrispondono, ottengo gli stessi identici messaggi di errore del richiedente. Questo è definito nel info.plist.

La mia squadra stava cercando di simulare l'utente di aggiornare una vecchia versione della nostra app per uno nuovo. La nuova versione era molto diversa e avevamo creato un nuovo progetto con un nuovo target e tutto il resto. Sfortunatamente questo ha cambiato il nome dell'eseguibile. Cambiando questo torna all'originale, l'aggiornamento ha funzionato perfettamente.

+0

Grazie! Questo è il caso nella nostra situazione. – zhengyue

Problemi correlati