開発中のDebugビルドならデバッグ情報の生成は「DWARF」の設定で十分そう
開発中に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ファイルは通常次の場所に生成される。
-
Xcodeプロジェクトディレクトリの中の以下のパスにアクセスすると、ビルド成果物が確認できる。
/Users/<ユーザー名>/Library/Developer/Xcode/DerivedData/<プロジェクト名>/Build/Products/
-
バイナリファイル(実行可能ファイル)は、
Debug-iphoneos
やDebug-iphonesimulator
のフォルダ内にあり、アプリの実行可能ファイルは.app
フォルダの中に含まれている。 -
.dSYM
ファイルは、同じディレクトリにバイナリと一緒に生成されており、クラッシュ解析に使用される。
ファイルを確認する手順
- Xcodeのメニューバーから
Product > Show in Finder
を選択すると、ビルド成果物が保存されているフォルダがFinderで表示される。ここでバイナリや.dSYM
ファイルを直接確認できる。
結論
開発中のDebugビルドでは、手元でのデバッグがメインなので、ビルドが速くて手軽な 「DWARF」設定で十分 。
クラッシュ解析が必要なときや、実機テストのビルドでは、 「DWARF with dSYM」 にするといい。
Discussion