失败的生成

有多种原因导致您的生成可能对您的项目是唯一的。 通常,诊断生成故障的一种有效方法是将它们与工作版本进行比较。 此过程可以最大程度地减少变量并标识方案的相关条件。

如果在本地生成,但不在 App Center

通常,此问题是由于未提交的文件、不同的工具或未还原依赖项而导致的。 若要进行检查,你可以将项目的完整 git 克隆到新文件夹中。 然后用与 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计算机中的更改

与生成设置一样,可以通过查看以下文档来检查当前工具: 云生成计算机

但是,可以通过在生成脚本中运行此命令来记录哪些工具可用于特定生成:

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 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]-> > []-> [ ] 来查看提交消息 & 哈希

原型 URL: https://appcenter.ms/orgs/ [ORG name]/apps/[app-v]/build/branches/[BRANCH]/builds/[]

显示从源提交 & 哈希的屏幕截图

在生成的信息的顶部,你将看到提交的名称和缩写哈希。 在屏幕截图中:

  • 从3.0.5 到3.0.6 的 UITest
  • 提交328ff115

单击缩写的哈希会在同一提交中打开链接存储库: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/commit/328ff115cb67280f7bdc70074ff605c8962470e4

后续步骤

下面是用于进一步研究问题的几个选项:

联系支持人员

登录 https://appcenter.ms/apps 并单击屏幕右下角的聊天图标。 为了获得最佳效果,最好使用以下方法打开票证:

  • 观察结果摘要
  • 有关该问题的研究的详细信息和引文
  • 失败生成 URL,包括基本信息,例如应用名称&生成 ID
  • 要传递生成以与失败进行比较的 URL (如果适用)