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
Burada, Apple’ın macOS ve iOS için geliştirmede tercih ettiği bütünleşik geliştirme ortamı (IDE) olan Xcode kullanılarak bir derleme çıktısında hata ayıklamanın (debugging) nasıl yapıldığını açıklıyoruz.
--with-symbols seçeneğiyle uygulamanın dağıtım paketini oluşturun (daha fazla bilgi):$ 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 veya ios-deploy ile kurun$ ios-deploy -b <AppName>.ipa
.dSYM klasörünü, yani hata ayıklama sembollerini (debug symbols) edinin
Uygulama yerel kod eklentileri (Native Extensions) kullanmıyorsa .dSYM dosyasını d.defold.com adresinden indirebilirsiniz
Yerel kod eklentisi kullanıyorsanız .dSYM klasörü, bob.jar ile projeyi derlediğinizde oluşturulur. Yalnızca projeyi derlemek gerekir (arşivleme veya paketleme gerekmez):
$ 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>
Düzgün hata ayıklayabilmek için bir projemiz olması ve kaynak kodun eşlenmesi gerekir. Bu projeyi yalnızca hata ayıklamak için kullanıyoruz; derleme yapmak için kullanmıyoruz.
Yeni bir Xcode projesi oluşturun, Game şablonunu seçin

Bir ad (örneğin debug) ve varsayılan ayarları seçin
Projenin kaydedileceği klasörü seçin
Kodunuzu uygulamaya ekleyin

“Copy items if needed” seçeneğinin işaretli olmadığından emin olun.

Sonuç şöyle görünür

Build adımını devre dışı bırakın


Deployment target sürümünü, artık cihazınızın iOS sürümünden daha yüksek olacak şekilde ayarlayın

Hedef cihazı seçin

Bir uygulamada hata ayıklamak için birkaç seçeneğiniz vardır
Debug -> Attach to process... yolunu seçip uygulamayı buradan seçebilirsiniz
Ya da Attach to process by PID or Process name seçeneğini seçebilirsiniz

Uygulamayı cihazda başlatın
Edit Scheme içinde
lldb kullanabilmek için yürütme duraklatılmış olmalıdır
.dSYM yolunu lldb’ye ekleyin(lldb) add-dsym <PathTo.dSYM>

lldb tarafından sembollerin başarıyla okunduğunu doğrulayın(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 biçiminde adlandırılır ve her seferinde rastgele bir sayı kullanılır.$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
(lldb) settings show target.source-map
Bir sembolün hangi kaynak dosyadan geldiğini şu komutla kontrol edebilirsiniz
(lldb) image lookup -va <SymbolName>
Proje görünümünde bir dosya açın ve bir kesme noktası (breakpoint) belirleyin

Hata ayıklayıcının .dSYM klasörünü kabul etmesi için UUID değerinin, hata ayıklanan yürütülebilir dosyanın UUID değeriyle eşleşmesi gerekir. UUID değerini şu şekilde kontrol edebilirsiniz:
$ dwarfdump -u <PathToBinary>