Sdílet prostřednictvím


Neúspěšná sestavení

Důležité

31. března 2025 je naplánované vyřazení z provozu. I když můžete dál používat Visual Studio App Center, dokud ho úplně vyřadíte, existuje několik doporučených alternativ, na které můžete zvážit migraci.

Přečtěte si další informace o časových osách a alternativách podpory.

Existují různé důvody, proč mohlo dojít k selhání sestavení, které můžou být pro váš projekt jedinečné. Obvykle je efektivním způsobem, jak diagnostikovat selhání sestavení, jejich porovnání s funkčním sestavením. Tento proces může minimalizovat proměnné a identifikovat relevantní podmínky pro váš scénář.

Pokud vytváření funguje místně, ale ne v App Centeru

Obvyklou příčinou tohoto problému jsou nepotvrzené soubory, různé nástroje nebo neobnovené závislosti. Pokud chcete provést kontrolu, vytvořte úplný git clone projektu do nové složky. Potom použijte ke kompilaci stejnou konfigurací jako App Center, aby bylo možné porovnání.

  1. Otevřete terminál nebo příkazový řádek a zadejte: mkdir appcenter-test
  2. Pak změňte adresáře: cd appcenter-test
  3. Naklonujte úložiště pomocí: git clone -b <branch> <remote_repo>
  4. Spusťte nově naklonovaný projekt v místním integrovaném vývojovém prostředí nebo příkazovém řádku.
  5. Zkuste porovnat příkaz sestavení spuštěný v App Center s příkazem spuštěným místně.
  6. Porovnání verzí nástrojů, které používáte místně, s našimi Cloud Build Machines

Soubory s upravenými názvy souborů nebo umístěními se ignorují.

Sestavení můžou ignorovat soubor klíče, který se nedávno přesunul nebo přejmenoval. Zkuste v konfiguraci sestavení vybrat Uložit nebo Uložit & Sestavení . Obě možnosti přeindexují strom úložiště a aktualizují definici sestavení.

Známé příčiny jsou přesunutí nebo přejmenování skriptů sestavení & nuget.config souborů.

Porovnání různých buildů v App Center

Sledování změn v nastavení sestavení

Konfiguraci větve můžete zaznamenat voláním této metody rozhraní API: https://openapi.appcenter.ms/#/build/branchConfigurations_get

Rozhraní API neumožňuje přímo zaznamenávat předchozí konfigurace. Tento příkaz však můžete spustit s vlastním skriptem sestavení , aby sestavení při spuštění automaticky zaznamenávala aktuální konfiguraci.

Sledování změn v App Center Cloud Build Machines

Stejně jako v nastavení sestavení můžete aktuální nástroje zkontrolovat tak, že si projdete tento dokument: Cloud Build Machines.

Spuštěním tohoto příkazu ve skriptu sestavení však můžete zaznamenat, které z těchto nástrojů jsou k dispozici pro konkrétní sestavení:

eval cat $HOME/systeminfo.md

Některé větve fungují, zatímco jiné selžou

Zkuste zkontrolovat rozdíly v nastavení sestavení nebo potvrzený kód mezi větvemi. Pokud sestavení začne selhát konzistentně po určitém potvrzení ve stejné větvi, stojí za to zkontrolovat, jaké změny byly provedeny v neúspěšné potvrzení.

Občas selhávají sestavení

Sestavení může selhat bez jakékoli změny zdrojového kódu nebo nastavení sestavení. Příklad:

  • Obnovené různé verze balíčků
  • Externí služby nereagují
  • Vypršení časového limitu jednotlivých úkolů v sestavení
  • Další operace

Zkuste zkontrolovat, jestli je chyba sestavení konzistentní, když dojde k selháním.

Izolace a interpretace chybových zpráv

Automatické zvýrazňování chyb

App Center Build se automaticky pokusí zvýraznit běžné chybové zprávy nebo užitečný výstup, aby byl více viditelný. Vodítka se často nacházejí v primární chybě, protokolování před nebo následném protokolování. Tato aplikace je podepsána nastavením projektu & konfigurací sestavení. Proto jarsigner pro Android zaznamená chybu:

Snímek obrazovky se zvýrazněnou chybou

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

Podrobnější zkoumání

Pokud nenajdete relevantní chybové zprávy, dalším krokem je stažení protokolů sestavení, což můžete udělat z hlavní stránky sestavení. Otevřete složku s názvem logs_n > Build a zobrazí se seznam samostatných souborů protokolu uvedený v číselném pořadí. Příklad:

  • 1_Intialize job.txt
  • 2_Checkout.txt
  • 3_Tag build.txt
  • Další operace

Protokoly se číslují na základě hlavních fází sestavení. Většina selhání sestavení způsobí přeskočení určité fáze a vynechání souvisejícího protokolu:

  • (kroky 1–9)...
  • 10_Pre build Script.txt
  • 11_Build project.txt Xamarin.Android
  • 12_Sign APK.txt
  • 15_Post build Script.txt
  • Checkout.txt 20_Post úloh
  • 21_Finalize Job.txt

Fáze 13 byla vynechána jako první, takže dobrým výchozím bodem je fáze 12. Přeskočily se i pozdější fáze, ale je méně pravděpodobné, že jsou relevantní.

Identifikace korelačních potvrzení

V uživatelském rozhraní sestavení můžete zobrazit zprávu o potvrzení a hodnotu hash platnou pro vaše aktuální sestavení. Tuto funkci můžete použít k trasování a korelaci výsledků sestavení se změnami ve zdrojovém kódu.

Zprávy o potvrzení & hodnoty hash můžete zobrazit tak, že přejdete na Appcenter.ms –> [Název_organizace] –> [Název_aplikace] –> Sestavení –> [Název větve] –> [Číslo buildu].

Adresa URL prototypu: https://appcenter.ms/orgs/[ORG-NAME]/apps/[APP-NAME]/build/branchs/[BRANCH-NAME]/builds/[BUILD-NUMBER]

Snímek obrazovky zobrazující potvrzení & hodnoty hash ze zdroje

V horní části informací pro sestavení se zobrazí název a zkrácená hodnota hash potvrzení. Na snímku obrazovky:

  • Bump Xamarin.UITest z 3.0.5 na 3.0.6
  • Potvrzení 328ff115

Kliknutím na zkrácenou hodnotu hash se otevře propojené úložiště ve stejném potvrzení: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/commit/328ff115cb67280f7bdc70074ff605c8962470e4

Další kroky

Tady je několik možností, jak váš problém podrobněji prozkoumat:

Kontaktování podpory

Přihlaste https://appcenter.ms/apps se a klikněte na ikonu chatu v pravém dolním rohu obrazovky. Nejlepších výsledků dosáhnete tak, že lístek otevřete pomocí:

  • Shrnutí vašich pozorování
  • Podrobnosti a citace vašeho výzkumu týkajícího se problému
  • Adresy URL pro neúspěšná sestavení, včetně základních informací, jako je název aplikace & ID sestavení
  • Adresy URL pro předávání buildů pro porovnání se selháními (pokud jsou k dispozici)