重要
Visual Studio App Center は、2026 年 6 月 30 日まで引き続きサポートされる分析機能と診断機能を除き、2025 年 3 月 31 日に廃止されました。 詳細を参照してください。
App Center Diagnostics では、アプリケーションでアンマネージド C/C++ コードのクラッシュをシンボル化できます。 Android NDK コードで発生したアンマネージド コードクラッシュをシンボル化し、Upload Crashes API を介してアップロードされた Breakpad ミニダンプとしてフォーマットされたアンマネージド コードクラッシュをシンボル化できます。
App Center での Breakpad の使用
Breakpad は、C および C++ スタック トレースの生成に役立つライブラリとツール スイートです。 これらのスタック トレースは、Breakpad がプロジェクトに統合された後に生成された minidump ファイル から生成されます。
Breakpad には、 Linux、 Windows、 Mac アプリケーションと統合するためのスターター ガイドが用意されています。
App Center への Breakpad クラッシュ ログの送信
Android NDK
App Center では、NDK を使用してアンマネージド コードを実行する Android アプリケーション用の SDK 統合 が提供されます。 この統合により、Breakpad ミニダンプが作成され、自動的に App Center にアップロードされます。
その他のアプリケーション
Breakpad がアプリケーションと統合されたら、 Breakpad のクラッシュ ログとミニダンプを App Center にアップロードできます。
管理されていないクラッシュのシンボル化
ブレークパッド シンボル ペイロードの生成
App Center Diagnostics には、Breakpad ミニダンプから読み取り可能なスタック トレースを生成するためのシンボルが必要です。
アップロードされたシンボル アーカイブには、Breakpad .sym ツールを使用して生成されるdump_syms ファイルまたはバイナリ ファイル.so含める必要があります。
アップロードする .zip ファイルを生成する
App Center でシンボル化に必要なシンボルを取得するには、2 つの方法があります。 App Center では、プロジェクトで使用されているネイティブ バイナリから生成することも、Breakpad シンボルを直接アップロードすることもできます。
オプション 1: ネイティブ バイナリをアップロードする
プロジェクトの obj/local/$ABI/ ディレクトリからすべての .so ファイルを .zip ファイルに配置します。
オプション 2: ブレークパッドシンボルをアップロードする
- 「デバッグ シンボルの取得」セクションの Breakpad ドキュメント で説明されているように、Breakpad ツールチェーンを使用してシンボルをダンプします。
- 次の構造の symbols.zip ファイルを作成します。
注
macOS からシンボルをアップロードする場合は、余分なフォルダーのシンボルをクリーンアップする必要があります。たとえば、__MACOS生成され、これを削除するには、 zip -d <symbols.zip> __MACOSX/\*使用できます。
$ unzip -l symbols.zip
Archive: symbols.zip
Length Date Time Name
-------- ---- ---- ----
0 07-22-13 15:07 symbols/
0 07-22-13 15:07 symbols/libnative.so/
0 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
12468 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
0 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
12467 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
-------- -------
24935 6 files
App Center へのシンボルのアップロード
シンボルは、App Center ポータル、API、または CLI を使用してアップロードできます。
- App Center にログインし、アプリを選択します。
- 左側のメニューで、[ 診断 ] セクションに移動し、[シンボル] を選択 します。
- 右上隅にある [ シンボルのアップロード ] をクリックし、ファイルをアップロードします。
- シンボルのインデックスが App Center によって作成されると、クラッシュがシンボル化されます。
API を介してシンボルをアップロードするプロセスには、一連の 3 つの API 呼び出しが含まれます。1 つはバックエンドに領域を割り当て、1 つはファイルをアップロードし、1 つはアップロードの状態を更新します。 最初の API 呼び出しの本文では、 symbol_type を Breakpad に設定する必要があります。
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
- 最初の手順から返された
upload_urlプロパティを使用して、ヘッダーを使用してPUT要求を行います:"x-ms-blob-type: BlockBlob"し、ディスク上のファイルの場所を指定します。 この呼び出しにより、ファイルがバックエンド ストレージ アカウントにアップロードされます。 PUT BLOB 要求ヘッダーの詳細を確認します。
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
- 最初の手順から返された
PATCHプロパティを使用して、symbol_uploads API にsymbol_upload_id要求を行います。 要求の本文で、アップロードの状態をアップロード プロセスのcommitted(正常に完了) に設定するか、aborted(正常に完了しなかった) かを指定します。
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
注
シンボルのアップロード API は、256 MB を超えるファイルでは機能しません。 これらのファイルをアップロードするには、App Center CLI を使用します。 App Center CLI リポジトリの手順に従って、 App Center CLI をインストールできます。
シンボルの無視
クラッシュ レポートを完全にシンボル化するためのシンボル ファイルがすべて App Center に含まれていない場合、クラッシュは [ Unsymbolicated ] タブに一覧表示されます。必要なシンボルにアクセスできる場合は、このページからアップロードされます。
シンボルをアップロードできない場合は、テーブル内の行を選択して [バージョンを無視] ボタンをクリックすることで、シンボルを無視としてマークできます。 このボタンは、クラッシュを処理し、ファイル上のシンボルを使用して可能な限り完全にシンボル化するように App Center に指示します。 処理が完了すると、部分的にシンボル化された [ クラッシュ ] タブに表示されます。 無視済みとしてマークされた同じシンボル ID に依存する新しいクラッシュは、Unsymbolicated タブを通過し、システム内で処理されます。