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
ここでは、Apple が macOS と iOS 向けの開発に推奨する IDE である Xcode を使用して、ビルド成果物をデバッグする方法を説明します。
--with-symbols オプションを付けてアプリのバンドル(bundle)を作成します(詳細):$ 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、ios-deploy のいずれかでアプリをインストールします。$ ios-deploy -b <AppName>.ipa
.dSYM フォルダー(デバッグシンボル)を取得します。
ネイティブ拡張(native extension)を使用していない場合は、d.defold.com から .dSYM ファイルをダウンロードできます。
ネイティブ拡張を使用している場合は、bob.jar でビルドすると .dSYM フォルダーが生成されます。ビルドだけで十分です(アーカイブやバンドルの作成は不要です):
$ 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>
適切にデバッグするには、プロジェクトを用意し、ソースコードのマッピングを設定する必要があります。 このプロジェクトはビルドには使用せず、デバッグだけに使用します。
新しい Xcode プロジェクトを作成し、Game テンプレートを選択します。

名前(例:debug)を指定し、デフォルトの設定を選択します。
プロジェクトを保存するフォルダーを選択します。
アプリにコードを追加します。

「Copy items if needed」のチェックが外れていることを確認します。

最終的に次のようになります。

Build ステップを無効にします。


Deployment target のバージョンを、デバイスの iOS バージョンより大きくなるように設定します。

対象デバイスを選択します。

アプリをデバッグするには、いくつかの方法があります。
Debug -> Attach to process... を選択し、そこからアプリを選択します。
または、Attach to process by PID or Process name を選択します。

デバイスでアプリを起動します。
Edit Scheme で
lldb を使用するには、実行を一時停止する必要があります
.dSYM のパスを lldb に追加します。(lldb) add-dsym <PathTo.dSYM>

lldb がシンボルを正常に読み込んだことを確認します。(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 のようになり、毎回ランダムな数値が使われます。$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
(lldb) settings show target.source-map
次のコマンドを使用して、シンボルがどのソースファイルに由来するかを確認できます。
(lldb) image lookup -va <SymbolName>
プロジェクトビューでファイルを開き、ブレークポイントを設定します。

デバッガーが .dSYM フォルダーを受け付けるには、その UUID がデバッグ対象の実行ファイルの UUID と一致する必要があります。次のように UUID を確認できます:
$ dwarfdump -u <PathToBinary>