This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Hier beschreiben wir, wie du einen Build mit Xcode, Apples bevorzugter IDE zur Entwicklung für macOS und iOS, debuggst.
--with-symbols ein Bundle der App (weitere Informationen):$ cd myproject
$ wget http://d.defold.com/archive/<sha1>/bob/bob.jar
$ java -jar bob.jar --platform armv7-darwin build --with-symbols --variant debug --archive bundle -bo build/ios -mp <app>.mobileprovision --identity "iPhone Developer: Your Name (ID)"
Xcode, iTunes oder ios-deploy$ ios-deploy -b <AppName>.ipa
Besorge dir den Ordner .dSYM (also die Debug-Symbole)
Wenn die App keine nativen Erweiterungen (native extensions) verwendet, kannst du die Datei .dSYM von d.defold.com herunterladen
Wenn du eine native Erweiterung verwendest, wird der Ordner .dSYM beim Erstellen eines Builds mit bob.jar erzeugt. Dafür ist nur ein Build erforderlich (keine Archivierung oder Bundle-Erstellung):
$ cd myproject
$ unzip .internal/cache/arm64-ios/build.zip
$ mv dmengine.dSYM <AppName>.dSYM
$ mv <AppName>.dSYM/Contents/Resources/DWARF/dmengine <AppName>.dSYM/Contents/Resources/DWARF/<AppName>
Um richtig debuggen zu können, benötigen wir ein Projekt, in dem der Quellcode zugeordnet ist. Wir verwenden dieses Projekt nur zum Debuggen, nicht zum Erstellen von Builds.
Erstelle ein neues Xcode-Projekt und wähle die Vorlage Game

Wähle einen Namen (z. B. debug) und die Standardeinstellungen
Wähle einen Ordner, in dem das Projekt gespeichert werden soll
Füge deinen Code zur App hinzu

Stelle sicher, dass „Copy items if needed“ deaktiviert ist.

So sieht das Endergebnis aus

Deaktiviere den Schritt Build


Stelle die Version von Deployment target so ein, dass sie nun höher als die iOS-Version deines Geräts ist

Wähle das Zielgerät

Du hast mehrere Möglichkeiten, eine App zu debuggen
Wähle entweder Debug -> Attach to process... und wähle dort die App aus
Oder wähle Attach to process by PID or Process name

Starte die App auf dem Gerät
Füge unter Edit Scheme den Ordner
Um lldb zu verwenden, muss die Ausführung angehalten sein
.dSYM in lldb hinzu(lldb) add-dsym <PathTo.dSYM>

lldb die Symbole erfolgreich eingelesen hat(lldb) image list <AppName>
(lldb) settings set target.source-map /Users/builder/ci/builds/engine-ios-64-master/build /Users/mathiaswesterdahl/work/defold
(lldb) settings append target.source-map /private/var/folders/m5/bcw7ykhd6vq9lwjzq1mkp8j00000gn/T/job4836347589046353012/upload/videoplayer/src /Users/mathiaswesterdahl/work/projects/extension-videoplayer-native/videoplayer/src
job1298751322870374150, wobei die Zahl jedes Mal zufällig gewählt wird.$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
(lldb) settings show target.source-map
Mit folgendem Befehl kannst du prüfen, aus welcher Quelldatei ein Symbol stammt
(lldb) image lookup -va <SymbolName>
Öffne eine Datei in der Projektansicht und setze einen Haltepunkt

Damit der Debugger den Ordner .dSYM akzeptiert, muss dessen UUID mit der UUID der ausführbaren Datei übereinstimmen, die du debuggst. Du kannst die UUID wie folgt prüfen:
$ dwarfdump -u <PathToBinary>