Ich habe mich gefragt, ob mir jemand sagen kann, was Xcode tatsächlich tut, wenn nach dem Anschließen Ihres Geräts Folgendes angezeigt wird: "Verarbeiten von Symboldateien".
Ich musste ziemlich lange warten ... ungefähr 30 Minuten und die spätere Bereitstellung auf dem Gerät war erfolgreich. Möglicherweise nimmt sich der Mac Zeit, um das Gerät zu erkennen.
Jayprakash Dubey
Antworten:
263
Es lädt die (Debug-) Symbole vom Gerät herunter, sodass es möglich ist, Geräte mit dieser bestimmten iOS-Version zu debuggen und Absturzberichte zu symbolisieren, die auf dieser iOS-Version aufgetreten sind.
Da Symbole CPU-spezifisch sind, funktioniert das oben Genannte nur, wenn Sie die Symbole nicht nur für ein bestimmtes iOS-Gerät, sondern auch für einen bestimmten CPU-Typ importiert haben. Die derzeit benötigten CPU-Typen sind armv7 (z. B. iPhone 4, iPhone 4s), armv7s (z. B. iPhone 5) und arm64 (z. B. iPhone 5s).
Wenn Sie also einen Absturzbericht symbolisieren möchten, der auf einem iPhone 5 mit armv7s aufgetreten ist, und nur die Symbole für armv7 für diese bestimmte iOS-Version haben möchten, kann Xcode den Absturzbericht nicht (vollständig) symbolisieren.
Ich habe kürzlich festgestellt, dass Xcode weder von meinem iPad2 noch von meinem iPhone4s Symboldateien verarbeitet. Immer hörte es auf halbem Weg auf und war nie fertig, auch nicht nach einer halben Stunde. Am Ende habe ich es zum Laufen gebracht ... indem ich ein komplett neues Anschlusskabel herausgebrochen und direkt an meinen Mac Mini angeschlossen habe (zuvor war ich über ein Verlängerungskabel eingesteckt worden). Ich kam zu dem Schluss, dass eine schlechte Verbindung WIRKLICH mit Symbolaktualisierungen zu tun hat.
Ash
5
Warum also nicht diese Symbole mit der xcode-Verteilung bündeln? Warum sich die Mühe machen, sie aus dem Gerät zu extrahieren?
Matthew Exon
3
Die Symbole für alle Architekturen sind pro iOS-Version größer als 1 GB, und es gibt nicht immer ein Xcode-Update für jede Bugfix-Version. Xcode wird nur mit API-Updates / Änderungen aktualisiert.
Kerni
@VladimirDespotovic Was möchten Sie hier lösen? Das ist kein Problem. Dies muss erfolgen, da der Debugger diese Daten benötigt und dies für die Absturzsymbolik ebenfalls erforderlich ist. Die Frage gab auch kein Problem an.
Kerni
36
In Xcode Version 6.1.1 (6A2008a) wurde nach "Verarbeiten von Symboldateien" ein Ordner mit Symbolen für das Gerät (einschließlich iOS-Version und CPU-Typ) in ~ / Library / Developer / Xcode / iOS DeviceSupport / wie folgt erstellt:
In meinem Fall enthielt "(null) ((null))" ... nichts!
Sjakelien
7
Da die Sym-Dateien bei Bedarf heruntergeladen werden, habe ich die meisten Ordner an diesem Speicherort verworfen. Es hat über 24 Gig auf meiner SSD frei gemacht!
Sjakelien
@Sjakelien Ordner dann gut beschriftet
Brad Thomas
19
xCode kopiert einfach alle Absturzprotokolle. Wenn Sie beschleunigen möchten: Löschen Sie die Anzahl der Absturzberichte, nachdem Sie sie analysiert haben, direkt in diesem Fenster.
@ SQLiu Sicher. Es scheint ein Fehler zu sein, oder die Protokolle sind größer als erwartet.
WINSergey
Wie greife ich auf diese Protokolle zu? (Ich habe 0 Erfahrung mit xCode)
Ben
@ Ben Fenster -> Geräte -> Wählen Sie Ihr Gerät auf der linken Seite -> fertig
WINSergey
4
In meinem Fall dauerte das Symbolisieren ewig. Ich erzwinge einen Neustart meines Telefons mit Ein / Aus und Home-Taste. Jetzt ist die Symbolisierung schnell beendet und ich starte meine App über xcode.
Ich weiß, dass dies keine technische Lösung ist, aber ich hatte mein iPhone per Kabel mit dem Computer verbunden und das Gerät vom Computer getrennt und wieder (wieder per Kabel) angeschlossen. Dies funktionierte für mich, da ich es mit den vorhandenen Lösungen nicht lösen konnte vorher zur Verfügung gestellt.
Das war vielleicht ein glückliches Timing ... oder eine verzögerte Reaktion auf andere Maßnahmen, die Sie ergriffen haben. Ich trennte mich und stellte die Verbindung wieder her und es ging zurück in diesen Modus, bis es beendet war.
Paul Masri-Stone
0
Es vergleicht vom Gerät abgerufene Absturzprotokolle mit der archivierten (als korrekt symbolisierten) Version Ihrer Anwendungen, um zu versuchen, abzurufen, wo in Ihrem Code der Absturz aufgetreten ist.
Ärgerlicher Fehler. Ich habe es gelöst, indem ich das Kabel direkt an das iPad angeschlossen habe. Aus irgendeinem Grund würde der Prozess niemals abgeschlossen sein, wenn ich das iPad in Apples Durchgangsständer hätte.
Es ist ein Fehler, weil es NIE abgeschlossen werden würde, wenn ich es im Stand hätte.
GoldenJoe
2
Ich erkenne, dass die Antwort schlecht ausgedrückt ist, aber es war in der Tat richtig für mich, eine direkte Verbindung zum für mich gelösten USB-Port herzustellen, obwohl der USB-Hub für jede andere Aufgabe
einwandfrei
0
SDK-Version hinzufügen entspricht Ihrem iPhone iOS, zB: iOS 10.3
Antworten:
Es lädt die (Debug-) Symbole vom Gerät herunter, sodass es möglich ist, Geräte mit dieser bestimmten iOS-Version zu debuggen und Absturzberichte zu symbolisieren, die auf dieser iOS-Version aufgetreten sind.
Da Symbole CPU-spezifisch sind, funktioniert das oben Genannte nur, wenn Sie die Symbole nicht nur für ein bestimmtes iOS-Gerät, sondern auch für einen bestimmten CPU-Typ importiert haben. Die derzeit benötigten CPU-Typen sind armv7 (z. B. iPhone 4, iPhone 4s), armv7s (z. B. iPhone 5) und arm64 (z. B. iPhone 5s).
Wenn Sie also einen Absturzbericht symbolisieren möchten, der auf einem iPhone 5 mit armv7s aufgetreten ist, und nur die Symbole für armv7 für diese bestimmte iOS-Version haben möchten, kann Xcode den Absturzbericht nicht (vollständig) symbolisieren.
quelle
In Xcode Version 6.1.1 (6A2008a) wurde nach "Verarbeiten von Symboldateien" ein Ordner mit Symbolen für das Gerät (einschließlich iOS-Version und CPU-Typ) in ~ / Library / Developer / Xcode / iOS DeviceSupport / wie folgt erstellt:
quelle
(null) ((null))
eigentlich.xCode kopiert einfach alle Absturzprotokolle. Wenn Sie beschleunigen möchten: Löschen Sie die Anzahl der Absturzberichte, nachdem Sie sie analysiert haben, direkt in diesem Fenster.
quelle
In meinem Fall dauerte das Symbolisieren ewig. Ich erzwinge einen Neustart meines Telefons mit Ein / Aus und Home-Taste. Jetzt ist die Symbolisierung schnell beendet und ich starte meine App über xcode.
quelle
Ich weiß, dass dies keine technische Lösung ist, aber ich hatte mein iPhone per Kabel mit dem Computer verbunden und das Gerät vom Computer getrennt und wieder (wieder per Kabel) angeschlossen. Dies funktionierte für mich, da ich es mit den vorhandenen Lösungen nicht lösen konnte vorher zur Verfügung gestellt.
quelle
Es vergleicht vom Gerät abgerufene Absturzprotokolle mit der archivierten (als korrekt symbolisierten) Version Ihrer Anwendungen, um zu versuchen, abzurufen, wo in Ihrem Code der Absturz aufgetreten ist.
Blick auf Xcode Symboldatei Standort für Details
quelle
Ärgerlicher Fehler. Ich habe es gelöst, indem ich das Kabel direkt an das iPad angeschlossen habe. Aus irgendeinem Grund würde der Prozess niemals abgeschlossen sein, wenn ich das iPad in Apples Durchgangsständer hätte.
quelle
SDK-Version hinzufügen entspricht Ihrem iPhone iOS, zB: iOS 10.3
Pfad:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Es wird heruntergeladen. Wenn es fertig ist, ist es OK. Wie in der Abbildung gezeigt:
quelle