Manuals
Manuals




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

Debugging unter iOS/macOS

Hier beschreiben wir, wie du einen Build mit Xcode, Apples bevorzugter IDE zur Entwicklung für macOS und iOS, debuggst.

Xcode

$ 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)"
  • Installiere die App mit 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>

Projekt erstellen

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

    Projektvorlage

  • 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

    Dateien hinzufügen

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

    Quellcode hinzufügen

  • So sieht das Endergebnis aus

    Hinzugefügter Quellcode

  • Deaktiviere den Schritt Build

    Schema bearbeiten

    Build-Schritt deaktivieren

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

    Bereitstellungsversion

  • Wähle das Zielgerät

    Gerät auswählen

Den Debugger starten

Du hast mehrere Möglichkeiten, eine App zu debuggen

  1. Wähle entweder Debug -> Attach to process... und wähle dort die App aus

  2. Oder wähle Attach to process by PID or Process name

    Gerät auswählen

  3. Starte die App auf dem Gerät

  4. Füge unter Edit Scheme den Ordner .app als ausführbare Datei hinzu

Debug-Symbole

Um lldb zu verwenden, muss die Ausführung angehalten sein

  • Füge den Pfad zu .dSYM in lldb hinzu
(lldb) add-dsym <PathTo.dSYM>
![Debug-Symbole hinzufügen](/manuals/images/extensions/debugging/ios/add_dsym.png)
  • Prüfe, ob lldb die Symbole erfolgreich eingelesen hat
(lldb) image list <AppName>

Pfadzuordnungen

  • Füge den Quellcode der Engine hinzu (passe die Pfade an deine Bedürfnisse an)
(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
  • Du kannst den Job-Ordner aus der ausführbaren Datei ermitteln. Der Job-Ordner heißt job1298751322870374150, wobei die Zahl jedes Mal zufällig gewählt wird.
$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job

  • Prüfe die Quellcodezuordnungen
(lldb) settings show target.source-map

Mit folgendem Befehl kannst du prüfen, aus welcher Quelldatei ein Symbol stammt

(lldb) image lookup -va <SymbolName>

Haltepunkte

  • Öffne eine Datei in der Projektansicht und setze einen Haltepunkt

    Haltepunkt

Hinweise

UUID der Binärdatei prüfen

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>