🧔‍♂️

開発中のDebugビルドならデバッグ情報の生成は「DWARF」の設定で十分そう

2024/09/11に公開

開発中にXcodeでデバッグ情報を設定する際、「DWARF」と「DWARF with dSYM」の2つがある。どちらもデバッグをサポートするけど、それぞれ特徴が違うので、開発状況に合わせた使い分けが大切。

概要

DWARF とは?

DWARF は、デバッグ情報がバイナリに直接含まれる形式。ビルドしたアプリ自体にデバッグ情報が入っているので、Xcodeですぐにデバッグできる。dSYMファイルは作られないけど、手元でのデバッグには十分。

DWARF with dSYM とは?

DWARF with dSYM は、デバッグ情報がバイナリとは別に .dSYM ファイルとして出力される形式。バイナリサイズが小さくなるけど、クラッシュレポートの解析には .dSYM が必要。実機テストやリリース後のクラッシュ解析で役立つ。

メリット

DWARF のメリット

  • ビルドが早い
    • dSYMファイルを生成しないため、ビルド時間が短縮される。頻繁にビルドする開発中にはこれが便利。
  • すぐにデバッグできる
    • シンボル情報がバイナリに含まれているため、Xcodeでそのままデバッグが可能。
  • クラッシュ解析が不要ならシンプル
    • クラッシュ解析を必要としない手元でのデバッグ作業に最適。

DWARF with dSYM のメリット

  • クラッシュレポートの解析が便利
    • dSYMファイルを使うことで、どこでクラッシュしたのかが細かく解析できる。
  • リモートデバイスでのクラッシュ解析が可能
    • 他のデバイスやチームが使っている実機でクラッシュが発生しても、dSYMを使用してクラッシュの原因を調査できる。
  • バイナリが軽い
    • デバッグ情報が別ファイルになるため、バイナリ自体が軽くなる。リリースビルドではこれが役立つ。

バイナリやdSYMファイルはどこに生成される?

Xcodeでビルドした際、バイナリやdSYMファイルは通常次の場所に生成される。

  1. Xcodeプロジェクトディレクトリの中の以下のパスにアクセスすると、ビルド成果物が確認できる。
    /Users/<ユーザー名>/Library/Developer/Xcode/DerivedData/<プロジェクト名>/Build/Products/

  2. バイナリファイル(実行可能ファイル)は、 Debug-iphoneosDebug-iphonesimulator のフォルダ内にあり、アプリの実行可能ファイルは .app フォルダの中に含まれている。

  3. .dSYM ファイルは、同じディレクトリにバイナリと一緒に生成されており、クラッシュ解析に使用される。

ファイルを確認する手順

  • Xcodeのメニューバーから Product > Show in Finder を選択すると、ビルド成果物が保存されているフォルダがFinderで表示される。ここでバイナリや .dSYM ファイルを直接確認できる。

結論

開発中のDebugビルドでは、手元でのデバッグがメインなので、ビルドが速くて手軽な 「DWARF」設定で十分
クラッシュ解析が必要なときや、実機テストのビルドでは、 「DWARF with dSYM」 にするといい。

Discussion