失败的生成
有多种原因导致您的生成可能对您的项目是唯一的。 通常,诊断生成故障的一种有效方法是将它们与工作版本进行比较。 此过程可以最大程度地减少变量并标识方案的相关条件。
如果在本地生成,但不在 App Center
通常,此问题是由于未提交的文件、不同的工具或未还原依赖项而导致的。 若要进行检查,你可以将项目的完整 git 克隆到新文件夹中。 然后用与 App Center 相同的配置进行编译,以便进行比较。
- 打开终端或命令行提示符,然后键入:
mkdir appcenter-test - 然后更改目录:
cd appcenter-test - 克隆存储库:
git clone -b <branch> <remote_repo> - 在本地 IDE 或命令行中启动刚刚克隆的项目。
- 尝试将 App Center 中执行的生成命令 与本地执行的命令进行比较。
- 将你在本地使用的工具版本与我们的云生成计算机进行比较
忽略带有修改的文件名或位置的文件
生成可能会忽略最近移动或重命名的密钥文件。 尝试在生成配置中选择 " 保存 " 或 " 保存 & 生成 "。 任一选项重新编制索引存储库树并更新生成定义。
已知原因为移动或重命名文件 & 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 (如果适用)