Windows 支援

App Center 目前支援 UWP、WPF 和 WinForms 應用程式的診斷。 本節說明在 2.5.0 SDK 版本中,UWP 應用程式的新體驗。 如需 WPF 和 WinForms 應用程式的詳細資訊,請參閱 診斷功能WPF/WinForms SDK

通用 Windows 平台

App Center 支援使用 2.5.0 SDK 或更新版本側載和 Windows Store UWP 應用程式的完整診斷功能集。 若要啟用適用于 UWP 應用程式的 App Center 診斷,請遵循 App center 的 UWP sdk 檔 來整合 APP center sdk。 您可以在 診斷功能檔中深入瞭解完整的功能集。

新的診斷體驗

在2019年10月的 2.5.0 SDK 版本中,App Center 推出了新的診斷體驗。 本節將詳細說明新版本的改進和轉換體驗。

進行了哪些改進?

全新且改良的診斷體驗包含下列新增專案:

  • 可讓您在 App Center 中上傳符號的完整符號化體驗。 如需詳細資訊,請參閱下面的符號化一節。
  • 支援處理的例外狀況
  • 每個損毀或錯誤群組所影響的使用者數目
  • 可以新增每個損毀或錯誤群組的注釋
  • 將當機和錯誤群組標示為開啟、關閉或忽略的能力
  • 能夠下載損毀和錯誤報表
  • 將一個二進位檔和一個文字附件附加、查看及下載到您的損毀報告的能力
  • 每個損毀實例的損毀和錯誤報表詳細資料,包括當應用程式啟動時、當應用程式當機時,以及裝置使用的國家/地區和語言

您可以在 App Center 診斷檔中深入瞭解各項功能。

什麼是轉換體驗?

更新至 App Center UWP SDK 版本2.5.0 之後,您會在新的和改良的 UI 中看到進入 App Center 診斷入口網站的損毀和錯誤資料。 如果是在新的診斷 UI 中顯示損毀和錯誤資料,您必須使用 [錯誤] 區段底下所列的 api。 深入瞭解舊的當機 Api 如何對應至 API 轉換檔中的新錯誤 api。

符號化

UWP 當機報告顯示造成損毀之執行緒的堆疊追蹤。 當應用程式使用 .NET Native (通常是在發行組建中) 堆疊追蹤可能包含記憶體位址,而不是讀取和瞭解損毀所需的類別名稱、方法、檔案名和行號。

Unsymbolicated 損毀

Unsymbolicated 損毀會顯示在 App Center 診斷區段中,因此您甚至可以在上傳符號之前查看一些詳細資料。 這些損毀的遺失符號會顯示在 [unsymbolicated] 索引標籤中。如果上傳遺失的符號,unsymbolicated 損毀群組將會被 symbolicated 損毀群組取代。

上傳符號

若要取得轉譯的記憶體位址,您需要將檔案上傳 .appxsym 至 App Center,其中包含符號化所需的所有資訊。

在本機產生符號

若要取得檔案 .appxsym ,您必須建立應用程式套件組合, 如下所述。 建立配套之後,您會在 [應用程式套件組合] 資料夾中找到符號檔做為檔案 .appxsym

App Center 組建內建應用程式的符號

App Center 組建和散發服務可以自動產生有效的符號檔,然後上傳至診斷服務。 如果您使用 App Center 來建立應用程式,並自動將其散發給您的使用者,則不需要手動取得符號檔案並上傳至 App Center。

發行至 Microsoft Store 的應用程式符號

當您將應用程式發行至存放區時,會在伺服器端進行 .NET Native 編譯。 因此,您需要從 合作夥伴中心下載符號。

  1. 在清單中找出您的應用程式,然後按一下它。
  2. 從左面板展開 [ 產品管理 ] 功能表。
  3. 按一下 [ 管理套件]。
  4. 針對您想要的符號 提交 (版本) ,按一下右上角的 [顯示套件]。
  5. 找出您需要符號的版本套件,然後按一下所有支援架構的連結,以下載所有符號 (例如 下載 Windows 10 符號檔 (x64) 連結) 。

App Center 入口網站

  1. 登入 App Center,然後選取您的應用程式。
  2. 在左側功能表中,流覽至 [ 診斷 ] 區段,然後選取 [ 符號]。
  3. 在右上角,按一下 [上傳符號 ] 並上傳檔案。
  4. 在應用程式中心編制符號的索引之後,將會為您 symbolicated 損毀。

App Center API

透過 API 上傳符號的套裝程式含一系列的三個 API 呼叫:一個用來在後端配置空間、一個用來上傳檔案,另一個則用來更新上傳狀態。 第一個 API 呼叫的主體應設定 symbol_typeUWP

  1. 觸發 POSTsymbol_uploads API的要求。 此呼叫會在後端為您的檔案配置空間,並傳回 symbol_upload_idupload_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 第一個步驟傳回的屬性, PUT 以標頭提出要求, "x-ms-blob-type: BlockBlob" 並提供您檔案在磁片上的位置。 此呼叫會將檔案上傳至後端儲存體帳戶。 深入瞭解 放置 Blob 要求標頭
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. 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 CLI

您也可以使用 CLI 來上傳符號檔:

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

忽略符號

當 App Center 沒有所有符號檔可完全將損毀報告時,[ Unsymbolicated ] 索引標籤中會列出損毀。如果您可以存取所需的符號,則會從這個頁面上傳。

如果您無法上傳符號,可以在資料表中選取資料列,然後按一下 [略過版本] 按鈕,將它們標示為已 過。 此按鈕會告知 App Center 處理當機,並使用檔案上的符號盡可能完整地將它們。 完成處理之後,它們就會出現 在 [當 機] 索引標籤部分 symbolicated 中。 也取決於標示為「已略過」之相同符號識別碼的新當機,將會略過 [ Unsymbolicated ] 索引標籤,因為它們進入並流經系統。

WinRT、Silverlight 及其他平臺

除了 UWP、WPF 和 WinForms 之外,App Center 不支援任何其他 Windows 平臺。 如果您的 Windows 應用程式具有原生 c + + 損毀,您可以透過 上傳損毀 API,將這些損毀上傳至 app Center。