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
Qui descriviamo come eseguire il debug di una build con Xcode, l’IDE consigliato da Apple per sviluppare per macOS e iOS.
--with-symbols (maggiori informazioni):$ 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 o ios-deploy$ ios-deploy -b <AppName>.ipa
Procurati la cartella .dSYM (cioè i simboli di debug)
Se l’app non usa estensioni native, puoi scaricare il file .dSYM da d.defold.com
Se usi un’estensione nativa, la cartella .dSYM viene generata quando crei una build con bob.jar. È sufficiente creare la build (senza archiviarla né creare un bundle):
$ 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>
Per eseguire correttamente il debug, occorre avere un progetto e mappare il codice sorgente. Questo progetto serve soltanto per il debug, non per creare build.
Crea un nuovo progetto Xcode e scegli il modello Game

Scegli un nome (ad esempio debug) e le impostazioni predefinite
Scegli una cartella in cui salvare il progetto
Aggiungi il tuo codice all’app

Assicurati che “Copy items if needed” sia deselezionato.

Questo è il risultato finale

Disabilita il passaggio Build


Imposta la versione di Deployment target in modo che sia superiore alla versione di iOS del tuo dispositivo

Seleziona il dispositivo di destinazione

Hai diverse opzioni per eseguire il debug di un’app
Puoi scegliere Debug -> Attach to process... e selezionare l’app da lì
Oppure scegliere Attach to process by PID or Process name

Avvia l’app sul dispositivo
In Edit Scheme aggiungi la cartella
Per usare lldb, l’esecuzione deve essere in pausa
.dSYM a lldb(lldb) add-dsym <PathTo.dSYM>

lldb abbia letto correttamente i simboli(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, con un numero casuale diverso ogni volta.$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
(lldb) settings show target.source-map
Puoi verificare da quale file sorgente proviene un simbolo usando
(lldb) image lookup -va <SymbolName>
Apri un file nella vista del progetto e imposta un punto di interruzione

Affinché il debugger accetti la cartella .dSYM, l’UUID deve corrispondere a quello dell’eseguibile di cui stai eseguendo il debug. Puoi verificare l’UUID in questo modo:
$ dwarfdump -u <PathToBinary>