iOSでは、セキュリティ上の理由からデバッグシンボルがリリースバイナリから削除されます。それでは、ファブリック、ホッケーなどのクラッシュレポートツールはどのように「デリボリケート」し、リリースビルドからのクラッシュポイントの素敵なスタックトレースを表示しますか?iOSのクラッシュレポートツールは、リリースビルドのクラッシュレポートの相違をどのように排除しますか?
OSで生成されたトレースに頼るのではなく、自分でクラッシュをキャプチャ/トレースしますか?
iOSでは、セキュリティ上の理由からデバッグシンボルがリリースバイナリから削除されます。それでは、ファブリック、ホッケーなどのクラッシュレポートツールはどのように「デリボリケート」し、リリースビルドからのクラッシュポイントの素敵なスタックトレースを表示しますか?iOSのクラッシュレポートツールは、リリースビルドのクラッシュレポートの相違をどのように排除しますか?
OSで生成されたトレースに頼るのではなく、自分でクラッシュをキャプチャ/トレースしますか?
以下は、OS X、iOSの、tvOSともwatchOSに適用されます。
DEBUG_INFORMATION_FORMAT
DWARF with dSYM File
)、一度だけビルドすると、象徴的に必要なすべての要素を含むdwarfファイルと、ファイル名と行番号を取得するdSYMパッケージも得られます。iTunes Connect、Xcode、Fabric、HockeyAppなどは実際にどのように記号化しますか?
これらはすべてdSYMパッケージのdwarfファイルを使用しています。彼らは、スタックフレームからメモリアドレスを取得し、アドレス範囲を照合してバイナリイメージのバイナリイメージセクションでバイナリイメージを検索し、バイナリイメージのUUIDを取得し、一致するUUIDを含むdSYMパッケージを検索しますCPUアーキテクチャーを実行してから、atos
のようなツールを実行して(デマングル)シンボルを取得します。
スタックトレースはどのように取得されますか?
ファブリックでは、dsymファイルをアップロードする必要があります。アップロードすると、クラッシュログを表すことができます。 – rckoenes
しかし、ビルドリリースビルドは決してdsymファイルを持っていないので、それではどのように動作しますか? Hockeyのようなツールのほかに、フィールドで発生したクラッシュのシンボル化されたクラッシュログ、つまりベータテスト中に発生したクラッシュログが表示されます。私は個人的にベータテスターとしてクラッシュを経験しました。それはdSymをアップロードしていない限り素敵で上品なものでした。 – 0x6d6e
リリースビルドにはdsymがあります。私はホッケーでは一度も働いていませんでしたが、そこにシステム。 – rckoenes