2015-12-18 7 views
7

Quindi questo mi sta facendo impazzire, ma alla fine ho scoperto che l'opzione di compilazione bitcode quando esporto la mia app per la distribuzione ad hoc sta causando la mancata corrispondenza del mio file di debug symbol (dSYM) e del mio UUID dell'app che significa che non posso simboleggiare alcun registro di crash.Perché la ricompilazione dal codice bit non mi rende in grado di simbolizzare in versioni ad hoc Xcode e come posso risolverlo?

La disattivazione dell'opzione risolve questo problema, ma esiste un modo per poterlo risolvere con l'opzione attivata? Ho letto il suggerimento per questa opzione e dice che lo store usa questo metodo. Non riuscirò più a leggere i registri degli arresti anomali dall'app store o si tratta solo di un problema locale?

Ecco quello che ottengo da un antico edificio, prima di questa versione Xcode:

dwarfdump --uuid app 
DD25E6C9-... (armv7) 
29F74B2E-... (arm64) 

dwarfdump --uuid app.dsym 
DD25E6C9... (armv7) 
29F74B2E... (arm64) 

fine. Ora con bitcode su:

dwarfdump --uuid app 
E7D2BE71-... (armv7) 
5C871FD7-... (arm64) 

dwarfdump --uuid app.dsym 
BC93BCF5-... (armv7) 
3312658C... (arm64) 

Ovviamente non simboleggia. L'ho provato con l'opzione off e corrisponde di nuovo. È un problema con Xcode non rigenerare i simboli per la nuova generazione di bitcode? E perché oh, perché questa impostazione predefinita è ON e non ti avvisa dei tuoi registri di crash ??

+0

In Organizer in Xcode v'è un'opzione "Scarica dSYMs" che si suppone per scaricare i dSYMs per i binari di Apple costruisce al xcarchive. Tuttavia, per me il dSYM per il file binario finisce per mancare, forse avrai più fortuna. – OpenUserX03

risposta

0

Quando codice binario che è abilitato, processo di archiviazione XCode produce: 1. Native arm64 o il codice ARMv7 2. codice binario che 3. file di dSYM (corrisponde l'UUID del codice nativo)

Quando si genera un Ad- distribuzione ad hoc e abilitare l'opzione "compila codice bit", XCode ricompila anche il codice bit in Native, che potrebbe e di solito produce un UUID diverso per le parti arm64 e armv7. L'app originale.dSYM non viene toccata (e quindi non corrisponde ai nuovi binari), mentre i nuovi dSYM vengono generati nella stessa cartella xcarchive, hanno la forma di "E2015333-1220-391E-928C-04C32A179EC9.dSYM" e corrisponde agli UUID effettivi dei binari appena compilati.

La storia non finisce sempre qui, questi nuovi file dSYM potrebbero essere offuscati (ho __hidden # 232434 invece dei nomi dei simboli effettivi). I mapping per debianizzarli risiedono anche nella cartella xcarchive in un nome di cartella "BCSymbolMaps".

Per de-offuscare tale dSYM si potrebbe usare il seguente comando:

dsymutil --symbol-map <bcSymbol-file> <obfuscated-dsym-file> 
Problemi correlati