2012-04-21 8 views
12

Mi rendo conto che è un tratto e non posso dare molto informazioni per aiutare, ma sto raggiungendo per qualsiasi cosa. La mia app è in continua evoluzione da 3 anni e non ho mai visto nulla di simile. Di recente ho presentato una piccola versione per Apple per la Release, e due volte è stata rifiutata per Crashing on Launch su TUTTI i loro dispositivi?L'app iOS con Static Lib si arresta in modo anomalo SOLO all'avvio di Ad Hoc caricato in archivio. Non è possibile riprodurre in Debugger

I report di Crash indicano un codice nella libreria statica ma le linee chiave non vengono simbolizzate. Ho provato Atos senza fortuna.

Il punto chiave è che ho 7 dispositivi ho testato l'applicazione su in ogni modo mi viene in mente, in particolare Nessun collegamento a qualsiasi cosa: Wifi-OFF, AirplaneMode-ON, Location servizi-OFF. Non riesco MAI a simulare ciò che affermano di vedere, ovvero l'App si arresta in modo anomalo all'avvio ogni volta ?!

Ho trovato un rapporto nei forum di AAPL Dev che sembrava simile, ma non ha mai avuto alcuna spiegazione su cosa fosse successo. Dopo aver inviato un'app con un carico di registrazione per disperazione, ha chiesto loro di inviare i log. Hanno ottenuto quella versione e ... l'hanno approvata in poche ore.

Chiunque ha QUALSIASI idea. HO BISOGNO di ottenere questo rilascio.


NOTA: Risolto


Questo si è rivelato non essere un problema di anello debole. Abbiamo visto il crash solo durante l'esecuzione dell'App utilizzando la distribuzione Ad Hoc della versione Archive come suggerito da Brad ... quindi è stato utile.

Tuttavia la risoluzione si è rivelato essere alcune flag di compilazione che ho elencato qui: https://stackoverflow.com/a/10302012/754494

+0

Quello che hanno non è quello che stai testando? –

+0

Stai suggerendo di provare una build ad hoc? Non l'ho ancora fatto, ma quello che ho provato era sicuramente quello che avevano. –

+1

Stai provando con una build di rilascio (debug off)? – mspasov

risposta

12

te lo ripubblicare ed estendere il mio commento dall'alto in modo che questa domanda può avere una risposta accettata.

Recentemente mi sono imbattuto in un caso simile a questo quando ho creato il mio framework GPUImage. Sembra che il processo di compilazione sia leggermente diverso durante l'archiviazione rispetto alla creazione e all'installazione diretta di un'applicazione sul dispositivo tramite Xcode.

Questo può essere esposto creando e archiviando l'applicazione, quindi scegliendo di distribuirlo per la distribuzione ad hoc o aziendale. Prendi il .ipa e mettilo in iTunes e caricalo manualmente su uno dei tuoi dispositivi di test in questo modo. Il comportamento di un'applicazione preparata in questo modo potrebbe essere diverso da quello creato e installato tramite Xcode e dovrebbe essere più vicino a come agirà una build inviata per la revisione.

Nel mio caso, il problema era dovuto alla mancanza di un corretto collegamento debole. Su SDK più recenti di iOS 4.3, non è più necessario utilizzare collegamenti intere deboli se si desidera utilizzare in modo condizionale classi e funzioni presenti negli SDK più recenti ma mancanti in quelli più vecchi. Se scegli come target 4.0 o superiore, il linker dovrebbe ora eseguire un collegamento debole a livello di classe e funzione.

Tuttavia, ciò non andava a buon fine per le persone che utilizzano la mia libreria statica, che esegue il runtime per verificare la presenza delle nuove funzioni della cache di texture in iOS 5.0, ma ha fallito solo in queste build archiviate. Non l'ho mai visto in tutti i miei test sui dispositivi 4.x, perché ciò è stato fatto installando tramite Xcode.Alla fine, avevo bisogno che gli utenti legassero in modo esplicito l'intera struttura Core Video per far sì che le applicazioni che usavano questo framework funzionassero correttamente una volta archiviate e installate tramite iTunes.

Si noti che questo non era dovuto alle configurazioni di build Release vs. Debug, perché ho provato a passare da uno di questi schemi di build alla distribuzione sul dispositivo tramite Xcode e non ha fatto alcuna differenza. Qualcos'altro è diverso nel modo in cui le applicazioni archiviate sono costruite e collegate.

+3

Brad Grazie. Non abbiamo ancora risolto, ma siamo abbastanza sicuri che questo è il problema. Basti studiare sulla configurazione corretta per i collegamenti deboli nelle nostre Impostazioni di compilazione post 4.3. Esecuzione dei build archiviati tramite AdHoc ci ha finalmente dato un modo affidabile per riprodurli. Non ne ho mai avuto bisogno prima, ma chiaramente se lavori o costruisci librerie è un passaggio fondamentale. –

Problemi correlati