共用方式為


失敗的組建

重要

Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到完全淘汰為止,但有數個建議的替代方案可以考慮移轉至。

深入瞭解支持時程表和替代方案。

建置可能失敗的原因有很多,可能對您的專案而言是唯一的。 通常診斷組建失敗的有效方式是將它們與運作中的組建進行比較。 此程式可將變數降至最低,並識別您案例的相關條件。

如果建置可在本機運作,但不在App Center中運作

此問題通常是因未認可的檔案、不同的工具或未還原的相依性而導致。 若要檢查,您可以將專案的完整 git clone 複製到新的資料夾中。 然後使用與 App Center 相同的組態進行編譯,以進行比較。

  1. 開啟終端機或命令列提示字元,然後輸入: mkdir appcenter-test
  2. 然後變更目錄: cd appcenter-test
  3. 使用: git clone -b <branch> <remote_repo>
  4. 在本機 IDE 或命令行中啟動全新複製的專案。
  5. 嘗試比較 在 App Center 中執行的組建命令 與在本機執行的命令。
  6. 比較您在本機使用的工具版本與雲端 組建機器

忽略具有修改檔名或位置的檔案

組建可能會忽略最近移動或重新命名的金鑰檔案。 請嘗試在組建組態中選取 [ 儲存 ] 或 [儲存 & 組建 ]。 任一選項會重新編製存放庫樹狀目錄的索引,並更新組建定義。

已知原因是 &nuget.config 檔案移動或重新命名組建腳本

比較 App Center 中的不同組建

追蹤組建設定中的變更

您可以呼叫此 API 方法來記錄分支組態: https://openapi.appcenter.ms/#/build/branchConfigurations_get

API 不會直接允許錄製過去的設定。 不過,您可以使用 自定義建置腳本 執行此命令,讓組建在執行時自動記錄目前的組態。

追蹤 App Center Cloud Build Machines 中的變更

就像組建設定一樣,您可以檢閱這份檔來檢查目前的工具: 雲端組建計算機

不過,您可以在組建文稿中執行此命令,以記錄哪些工具可供特定組建使用:

eval cat $HOME/systeminfo.md

有些分支會運作,有些分支卻失敗

請嘗試檢查組建設定或分支之間認可的程式代碼差異。 此外,如果組建在相同分支上的特定認可之後一致地開始失敗,則值得檢查失敗認可中所做的變更。

組建間歇性失敗

建置可能會失敗,而不會變更原始碼或組建設定。 例如:

  • 還原的不同套件版本
  • 外部服務未回應
  • 組建中的個別工作逾時
  • 依此類推

嘗試檢查發生失敗時,組建的錯誤是否一致。

隔離和解譯錯誤訊息

自動錯誤醒目提示

App Center 組建會自動嘗試反白顯示常見的錯誤訊息或有用的輸出,使其更可見。 通常可以在主要錯誤、記錄之前或之後的記錄中找到線索。 此應用程式是由項目設定 & 組建組態簽署。 因此,Android jarsigner 會記錄錯誤:

醒目提示錯誤的螢幕快照

jarsigner: unable to sign jar: java.util.zip.ZipException: invalid entry compressed size (expected 13274 but got 13651 bytes)
##[error]Error: /usr/bin/jarsigner failed with return code: 1
##[error]Return code: 1

深入的解析

如果您找不到相關的錯誤訊息,下一個步驟是從主要組建頁面下載組建記錄檔。 開啟名為 logs_n > Build 的資料夾,您會看到以數值順序列出的個別記錄檔清單。 例如:

  • 1_Intialize job.txt
  • 2_Checkout.txt
  • 3_Tag build.txt
  • 依此類推

記錄會根據組建的主要階段來編號。 大部分的組建失敗都會造成略過階段以及省略相關聯的記錄:

  • (步驟 1-9) ...
  • 10_Pre組建 Script.txt
  • 11_Build Xamarin.Android project.txt
  • 12_Sign APK.txt
  • 15_Post組建 Script.txt
  • 20_Post工作 Checkout.txt
  • 21_Finalize Job.txt

第一階段 13 已略過,因此階段 12 是不錯的起點。 後續階段也會略過,但較不相關。

識別相互關聯的認可

在建置UI中,您可以檢視適用於您目前組建的認可訊息和哈希。 您可以使用這項功能來追蹤組建結果,並將其與原始程式碼中的變更相互關聯。

您可以移至 [Appcenter.ms - [組織名稱] - [App-Name] ->> 建置 ->> [Branch-Name] - [Build-Name] -> [Build-Number] 來檢視認可訊息 & 哈希

原型 URL: https://appcenter.ms/orgs/[ORG-NAME]/apps/[APP-NAME]/build/branch/[BRANCH-NAME]/builds/[BUILD-NUMBER]

顯示來源認可 & 哈希的螢幕快照

在組建的信息頂端,您會看到認可的名稱和縮寫哈希。 在螢幕擷取畫面中:

  • 將 Xamarin.UITest 從 3.0.5 提升至 3.0.6
  • Commit 328ff115

按兩下縮寫哈希會在相同的認可上開啟連結存放庫: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/commit/328ff115cb67280f7bdc70074ff605c8962470e4

後續步驟

以下是一些進一步研究問題的選項:

連絡支持人員

https://appcenter.ms/apps登入並按兩下右下角的聊天圖示。 為了獲得最佳結果,最好使用下列項目開啟票證:

  • 觀察的摘要
  • 您研究問題的詳細數據和引文
  • 失敗組建的 URL,包括應用程式名稱 & 組建標識碼等基本資訊
  • 傳遞組建以與適用) 時 (失敗的 URL