"Troppi file di simboli" dopo aver inviato correttamente le mie app


199

Ho scaricato Xcode 6 GM e ho inviato due app Swift all'app store oggi. Entrambi hanno superato tutte le verifiche pre-upload e tutte le altre cose che dovevano superare e sono state inviate correttamente. Ma poi ho ricevuto due e-mail da Apple ... una per ciascun programma ed entrambi hanno detto questo:

Gentile sviluppatore,

Abbiamo riscontrato uno o più problemi con la tua recente consegna per "xxxxxxxx" (il nome della mia app è stato rimosso). La consegna è andata a buon fine, ma potresti voler correggere i seguenti problemi nella consegna successiva:

Troppi file di simboli: questi simboli non hanno una porzione corrispondente in nessun binario [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 44973EAC-563E-340C-B549-55A5014A68 , 678BF06F-0C3D-3A09-BFBF-699C7079FECD. Simboli, 90907DDB-0400-38ED-BB5F-0C12333C0624.symbols, 93B79949-5757-374A-97B9-825AE1A61B7D0bolsBB0F0204F0204 -4422-32B8-8C40-CF9B45A2CCC6.symbols, B0CC9F7D-C542-3E18-A518-B28B7ECABE80.symbols, BF6A4C3B-6FA5-3C51-8404-19C2F132458D.symbols, C9D9E2169 -3845-BAD5-F6E51045D396.symbols, D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.symbols, D813B314-AD37-31D4-B675-44205299695FF-BC3-3603 -8F7D-C49A36CD5C65.symbols]

Dopo aver corretto i problemi, puoi utilizzare Xcode o Caricatore applicazioni per caricare un nuovo file binario su iTunes Connect.

Saluti,

Il team dell'App Store

Immagino che non abbia davvero nulla a che fare con me o con le mie app ... ed è solo una stranezza di invii di app Swift del primo giorno? Entrambe le app sono ancora in modalità "In attesa di approvazione". Certamente non riesco a pensare a nulla che possa cambiare per far sparire ciò che hanno detto! Qualcun altro invia ancora un'app Swift e ottiene quella risposta? Pensi che dovrei semplicemente ignorarlo e aspettare di vedere cosa succede?


Il mio ha detto questo e Invalid Swift Support. Qualche idea sul perché potrei ottenerlo? Sto usando l'ultimo Xcode.
Dehli,

stesso problema qui e la mia app non può essere sottoposta a revisione. a causa di questo problema. Qualcuno ha risolto?
yudun1989,

1
stesso problema qui. inviato per la revisione comunque .. vediamo cosa succede :)
dandoen

Entrambe le mie App Swift sono state appena approvate sull'App Store ... quindi credo di non essermi preoccupato per niente! Accidenti ... :)
Jim Barber,

Risposte:


128

Ciò accade se si stanno includendo le informazioni di debug delle librerie con l'archivio del progetto ma non si includono i binari.

  1. Apri la finestra Organizer in Xcode
  2. Fai clic con il pulsante destro del mouse su un archivio che presenta questo problema e seleziona "Mostra nel Finder".
  3. Fare clic con il tasto destro sul file di archivio e selezionare "Mostra contenuto pacchetto"
  4. Nella cartella "dSYMs" vedrai diversi file. Se esegui il dwarfdumpcomando console su questi file otterrai un elenco di stringhe UUID:

    dwarfdump -u MyFile.dSYM

Sono sicuro che troverai alcuni UUID corrispondenti nell'e-mail di Apple.

Per evitare questo avviso, è necessario includere nel proprio archivio solo i dSYMfile dell'applicazione e non le librerie. Per questo è necessario modificare la configurazione di compilazione delle librerie per non generare un dSYMfile. Cerca solo "formato informazioni debug" nella configurazione e modificalo da DWARF with dSYM Filea DWARFsolo.

Ad esempio, nello screenshot qui sotto troverai il framework Stripe iOS.

Schermata delle impostazioni del progetto Xcode


13
dwarfdump -u *nella cartella per vedere tutti gli UUID
Jon

@Jon ooooh perché lo vedo dopo averlo fatto uno per uno? :) comunque grazie!
Serj Rubens,

6
Rimuovere i file dSYM significa che eventuali arresti anomali relativi a terze parti non saranno più simbolizzati su Crashlytics (o qualsiasi altro strumento di segnalazione degli arresti anomali)?
Eugenio,

Se si utilizza firebase \ fabric, tuttavia, è necessario utilizzare i file dsym per visualizzare i registri degli arresti anomali sul sito. Funzionano ancora con questo cambiamento?
Mattia Lancieri,

88

Se hai riscontrato questo problema durante l'utilizzo di CocoaPods, aggiungi questo al tuo Podfile:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
        end
    end
end

Il formato delle informazioni di debug verrà impostato su DWARF solo per tutti i target Pod (non il target dell'app principale)


@wzbozon Sì, chiedo solo di ricontrollare. Perché dopo averlo fatto, Crashlyticts smette di funzionare. Grazie!
Cesar Rodriguez,

Crashlytics dovrebbe continuare a funzionare per la tua app poiché questo script modifica le impostazioni di compilazione solo per i pod.
Stan,

1
Sono d'accordo. Ma non vedrai rapporti per i pod. Si potrebbe anche impostare DWARF con il file dSYM solo per alcuni pod, ad esempio i pod di sviluppo.
Denis Kutlubaev,

@Stan stai dicendo che Crashlytics continuerà a funzionare? Cesar Rodriguez sembra dire che non funzionerà.
airowe,

8
Questo mi ha risolto. Non dimenticare dipod install
firebear

17

Se stai usando CocoaPods e la tua app è impostata per usare solo arm64 (ovvero c'è solo arm64 nella scheda info del tuo progetto)

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

quindi puoi provare ad aggiungere il seguente script nel tuo Podfile per risolvere questo problema.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['ARCHS'] = 'arm64'
    end
  end
end

E

imposta tutti gli obiettivi dei tuoi progetti (non quelli in Pod) solo su arm64

Impostazioni del progetto Xcode

Riferimenti all'edizione di CocoaPods Github


Presumibilmente dovresti includere anche arm64e adesso, no?
shim

Includerei arm64s per il simulatore. Verrà rimosso automaticamente per le build di rilascio.
cybergen,

13

Ho questo problema a causa del progetto ha un'architettura arm64 valida cui gli obiettivi CocoaPods hanno un'architettura valida arm64, armv7 e armv7s .

Per verificare quale target ha quale architettura valida seguire i seguenti passaggi

  1. In Xcode -> Finestra -> Organizer
  2. Seleziona l'archivio e Rivela nel Finder
  3. Su .xcarchive file , Mostra il contenuto del pacchetto
  4. Aprire il terminale e indicare il percorso della cartella dSYMs .

  5. Immettere il comando dwarfdump --uuid *e mostrerà l'elenco di UUID con architetture valide.

L'UUID corrisponderà all'e-mail di avviso di Apple

Il progetto principale e il target dei baccelli di cacao suppongono di avere la stessa architettura valida. In questo modo, risolverà il problema.


Penso che spieghi il meglio di ciò che sta succedendo. Ho questi avvertimenti solo sulle librerie con architettura armv7 perché il mio progetto è stato creato solo per arm64. Rimane la domanda se dovrei aggiungere armv7 al progetto o rimuoverlo dai pod.
Ariel Bogdziewicz,

6

Ha funzionato per me abilitando bitcode - era spento prima

Abilita Bitcode - Sì

inserisci qui la descrizione dell'immagine


1

Quanto sopra ha aiutato a risolvere i problemi, ma non è stato possibile risolverli. Avevamo un progetto su iOS 12 ma i pod 10 - portavano a un sacco di file armv7. L'aggiornamento del pod a iOS 12 è stato risolto all'istante.


0

Lo stesso problema è stato risolto avendo lo stesso "Generale" => "Informazioni sulla distribuzione" => "Target di distribuzione" per tutti i miei target.


0

In Xcode, cerca in "Crea impostazioni per i simboli di debug durante la copia" (COPY_PHASE_STRIP). Se abilitati, i simboli di debug vengono omessi dal tuo .app e inseriti in un file .dSYM. Altrimenti il ​​tuo .app contiene questi simboli. (Per impostazione predefinita, i simboli di debug sono eliminati dalle build di rilascio per motivi di offuscamento. Probabilmente non è necessario modificare questa impostazione per la configurazione di rilascio.)

Assicurati di selezionare questa opzione nelle Impostazioni build del progetto

https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/


0

Il problema per me era una riga nel mio build.xcconfigfile. Ho dovuto rimuovere

IPHONEOS_DEPLOYMENT_TARGET = 11.0

che stava impostando il progetto su build solo per arm64 (e non arm7). Seguendo i passaggi da @miOSho potuto vedere che il progetto pods stava costruendo per entrambi.


1
stackoverflow.com/a/49063850/3293172 iOS 11 ha eliminato il supporto per armv7 e armv7s, quindi è necessario solo arm64 se si dispone di una destinazione di distribuzione> = iOS 11.0.
Ariel Bogdziewicz,

-2

Per me è stato tutto molto semplice. Ho avuto lo stesso problema e non sapevo cosa fare per una settimana.

Dopo aver inviato una domanda archiviata, vedrai il certificato per la distribuzione in una piccola finestra popup. Dopo c'è una casella di controllo, che dovresti deselezionare. Successivamente, lo invierai e riceverai un'email sui file dei simboli. MA non è un problema. È solo un avvertimento; non un errore! Se deselezioni la casella di controllo, l'app verrà inviata correttamente. Spero che ti possa aiutare.

Schermata della casella di controllo e del popup:

Schermata della casella di controllo e del popup


Spero davvero che tu sia più dettagliato .... Non ho idea di quale casella di controllo o popup stai parlando. Forse una schermata?
Louis Hong,


5
Sì, ma questo eliminerà tutti i simboli dal pacchetto e quindi non riceverai rapporti sugli arresti anomali simbolizzati? (Forniscono persino rapporti sugli arresti anomali simbolizzati nelle app dell'App Store con TestFlight?)
Markus Rautopuro,

30
Questa non è una soluzione valida al problema. Questo evita il sintomo, non risolve il problema. Vedi la risposta Mikhails per una descrizione di come stai caricando i simboli che non ti servono. Questa risposta impedisce il caricamento di qualsiasi simbolo, interrompendo così la simbolizzazione del crash tramite iTunesConnect
JConway,

2
NON farlo, se lo fai non sarai in grado di analizzare la tua app su App Store per errori di crash
user924
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.