Windows 対応

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

サポートタイムラインと代替方法の詳細をご確認ください

App Center では現在、UWP、WPF、WinForms アプリケーションの診断がサポートされています。 このセクションでは、2.5.0 SDK リリースの一部としての UWP アプリの新しいエクスペリエンスについて説明します。 WPF および WinForms アプリケーションの詳細については、診断機能WPF/WinForms SDK に関する説明を参照してください。

ユニバーサル Windows プラットフォーム

App Center では、2.5.0 SDK 以降のバージョンを使用するサイドロード済みアプリと Windows ストア UWP アプリの両方の完全な診断機能セットがサポートされています。 UWP アプリに対して App Center の診断を有効にするには、App Center の UWP SDK ドキュメントに従って App Center SDK を統合します。 完全な機能セットの詳細については、診断機能のドキュメントを 参照してください

新しい診断エクスペリエンス

2019 年 10 月の 2.5.0 SDK リリースでは、App Center は新しい診断エクスペリエンスをリリースしました。 このセクションでは、新しいリリースでの機能強化と移行エクスペリエンスについて詳しく説明します。

どのような改善が行われましたか?

新しく改善された診断エクスペリエンスには、次の追加機能が含まれています。

  • App Center でシンボルをアップロードできる完全なシンボル化エクスペリエンス。 詳細については、以下のシンボリック化のセクションを参照してください。
  • 処理された例外のサポート
  • クラッシュまたはエラー グループごとに影響を受けたユーザーの数
  • クラッシュまたはエラー グループごとに注釈を追加する機能
  • クラッシュ グループとエラー グループをオープン、クローズ、または無視としてマークする機能
  • クラッシュ レポートとエラー レポートをダウンロードする機能
  • クラッシュ レポートに 1 つのバイナリ添付ファイルと 1 つのテキスト添付ファイルを添付、表示、ダウンロードする機能
  • クラッシュ レポートとエラー レポートの詳細 (アプリの起動時、クラッシュ時、デバイスで使用された国/地域、言語など)

各機能 の詳細については、App Center の診断ドキュメントを参照してください

移行エクスペリエンスは何ですか?

App Center UWP SDK バージョン 2.5.0 に更新すると、新しく改良された UI で、App Center 診断ポータルにクラッシュデータとエラー データが表示されます。 新しい診断 UI に表示されるクラッシュ データとエラー データの場合は、エラー セクションの下に一覧表示されている API を使用する必要があります。 古いクラッシュ API が新しいエラー API にマップされるしくみについては、API 移行に関するドキュメントを 参照してください

シンボリック化

UWP クラッシュ レポートには、クラッシュの原因となったスレッドのスタック トレースが表示されます。 アプリケーションで.NET ネイティブ (通常はリリース ビルド) を使用している場合、スタック トレースには、クラッシュの読み取りと理解に必要なクラス名、メソッド、ファイル名、行番号の代わりにメモリ アドレスが含まれている可能性があります。

アンsymbolicatedクラッシュ

[App Center Diagnostics]\(App Center 診断\) セクションには、シンボルをアップロードする前でも詳細を表示できるように、不明なクラッシュが表示されます。 これらのクラッシュに含まれていないシンボルは、[unsymbolicated] タブに表示されます。不足しているシンボルがアップロードされた場合、シンボル化されていないクラッシュ グループは、シンボル化されたクラッシュ グループに置き換えられます。

シンボルのアップロード

メモリ アドレスを変換するには、シンボル化に必要なすべての情報を含むファイルを App Center にアップロード .appxsym する必要があります。

シンボルをローカルで生成する

ファイルを.appxsym取得するには、ここで説明するようにアプリ バンドルを作成する必要があります。 バンドルを作成すると、シンボル ファイルがアプリ バンドル フォルダー内のファイルとして .appxsym 見つかります。

App Center ビルドに組み込まれているアプリケーションのシンボル

App Center ビルドおよび配布サービスは、有効なシンボル ファイルを自動的に生成し、診断サービスにアップロードできます。 App Center を使用してアプリをビルドし、エンド ユーザーに自動配布する場合、シンボル ファイルを手動で取得して App Center にアップロードする必要はありません。

Microsoft Store に発行されたアプリケーションのシンボル

アプリケーションをストアに発行すると、サーバー側で.NET ネイティブコンパイルが行われます。 そのため、パートナー センターからシンボルをダウンロードする 必要があります

  1. 一覧でアプリケーションを見つけてクリックします。
  2. 左側のパネルから [製品管理] メニューを展開します。
  3. [パッケージの管理] をクリックします
  4. シンボルが必要な申請 (バージョン) の右上隅にある [パッケージ表示] をクリックします。
  5. シンボルが必要なバージョンのパッケージを見つけ、サポートされているすべてのアーキテクチャのリンクをクリックして、すべてのシンボル (Windows 10 シンボル ファイルのダウンロード (x64) リンクなど ) をダウンロードします。

Note

デバッグ シンボルを生成するには、アプリケーションで任意のバージョンの.NET ネイティブへの依存関係を宣言する必要があります。 この宣言は、次のセクションに <Dependencies> 含める必要があります AppxManifest.xml。 例:

<PackageDependency Name="Microsoft.NET.Native.Framework.2.2" MinVersion="2.2.29512.0" Publisher="CN=Microsoft Corporation, 0=Microsoft Corporation, L=Redmond, S=Washington, C=US"/>
<PackageDependency Name="Microsoft.NET.Native.Runtime.2.2" MinVersion="2 2.28604.0" Publisher="CN=Microsoft Corporation, 0=Microsoft Corporation, L=Redmond, S=Washington, C=US"/>

App Center ポータル

  1. App Center にログインしてアプリを選択します。
  2. 左側のメニューで、[診断] セクションに移動し、[シンボル] を選択します
  3. 右上隅にある [シンボルのアップロード] をクリックし、ファイルをアップロードします
  4. シンボルのインデックスが App Center によって作成されると、クラッシュがシンボル化されます。

App Center API

API を介してシンボルをアップロードするプロセスには、一連の 3 つの API 呼び出しが含まれます。1 つはバックエンドに領域を割り当て、1 つはファイルをアップロードし、1 つはアップロードの状態を更新します。 最初の API 呼び出しの本文は 、次に設定 symbol_type する UWP必要があります。

  1. POST symbol_uploads API への要求をトリガーします。 この呼び出しにより、ファイルのバックエンドに領域が割り当てられ、a symbol_upload_id とプロパティが upload_url 返されます。
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}'
  1. 最初のupload_url手順から返されたプロパティを使用して、ヘッダー"x-ms-blob-type: BlockBlob"を使用して要求を行いPUT、ディスク上のファイルの場所を指定します。 この呼び出しにより、ファイルがバックエンド ストレージ アカウントにアップロードされます。 PUT BLOB 要求ヘッダーの詳細を 確認します
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. 最初のPATCH手順から返されたプロパティを使用してsymbol_upload_id、symbol_uploads API に要求を行います。 要求の本文で、アップロードの状態を (正常に完了した) アップロード 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" }'

Note

シンボルのアップロード API は、256 MB を超えるファイルでは機能しません。 これらのファイルをアップロードするには、App Center CLI を使用します。 App Center CLI リポジトリの手順に従って、App Center CLI をインストールできます。

App Center CLI

CLI を使用してシンボル ファイルをアップロードすることもできます。

appcenter crashes upload-symbols --appxsym {symbol file}

シンボルの無視

クラッシュ レポートを完全にシンボル化するためのシンボル ファイルがすべて App Center に含まれていない場合、クラッシュは [Unsymbolicated] タブに一覧表示されます。必要なシンボルにアクセスできる場合は、このページからアップロードされます。

シンボルをアップロードできない場合は、テーブル内の行を選択して [バージョンを無視] ボタンをクリックすることで、シンボルを無視としてマークできます。 このボタンは、クラッシュを処理し、ファイル上のシンボルを使用して可能な限り完全にシンボル化するように App Center に指示します。 処理が完了すると、部分的にシンボル化された [クラッシュ] タブに表示されます。 無視済みとしてマークされた同じシンボル ID にも依存する新しいクラッシュは、[Unsymbolicated]\(アンシャンボリック\) タブがバイパスされ、システム内を流れます。

WinRT、Silverlight、およびその他のプラットフォーム

App Center では、UWP、WPF、WinForms 以外の Windows プラットフォームはサポートされていません。 ネイティブ C++ がクラッシュした Windows アプリがある場合は、アップロードクラッシュ API を使用して、これらのクラッシュを App Center にアップロードできます。