59

私は別の開発者と一緒にアプリに取り組んでおり、彼らは自分のコンピューターで構築されたアプリ ストアにリリースを送信しました。私のマシン (同じ git commit に属する) でビルドを作成するには、XCode プロジェクトで使用するライブラリの 1 つへのパスを変更する必要があります。XCode プロジェクト ファイルを変更すると、dSYM が変更されますか? XCode プロジェクト ファイルを変更せずにビルドできた場合、dSYM ファイルは同じでしょうか?

4

1 に答える 1

144

dSYM ファイルは「デバッグ シンボル ファイル」です。プロジェクトのビルド設定で「Strip Debug Symbols」設定が有効になっている場合に生成されます。

この設定を有効にすると、オブジェクトのシンボル名がコンパイルされた結果のバイナリから削除されます (試行および防止すべき多くの対策の 1 つは、ハッカー/クラッカーによるコードのリバース エンジニアリング、バイナリ サイズの最適化などです)。

dSYM ファイルは、アプリがコンパイルされるたびに変更される可能性が高く (おそらく日付スタンプのために毎回)、プロジェクト設定とは関係ありません。

これらは、クラッシュ レポートを再記号化するのに役立ちます。削除されたバイナリでは、最初に再シンボリック化しない限り、クラッシュ レポートを読み取ることができません。dSYM がないと、クラッシュ レポートはオブジェクトとメソッドのメモリ アドレスだけを表示します。Xcode は dSYM を使用してシンボルをクラッシュ レポートに戻し、ユーザーが正しく読み取れるようにします。

理想的には、dSYM ファイルは git リポジトリで追跡されるべきではありません。ビルド時に変更される他のバイナリと同様に、それらをソース管理に保持することは役に立ちません。ただし、そうは言っても、配布された各ビルド (ベータ、プレス リリース、アプリ ストア配布など) の dSYM ファイルを安全な場所に保管して、取得する可能性のあるクラッシュ レポートをシンボル化できるようにすることが重要です。アーカイブ オプションを使用すると、Xcode はこれを自動的に行います。作成されたアーカイブにはアプリとその dSYM が含まれ、Xcode の派生データ ディレクトリに保存されます。

于 2014-03-17T16:46:03.023 に答える