在 Azure Devops 中签署和对齐 APK 文件 **/*.apk

Signing and aligning APK file(s) **/*.apk in Azure Devops

我一直在尝试构建 android apk 的 devops,但我的管道在签名和对齐 Apk 阶段失败。

我收到以下错误

##[error]错误:未找到符合搜索模式的匹配文件:D:\a\s***.apk PIPELINE Definition Snapshot_2

在构建代理的工作目录下似乎找不到 .apk 文件。请检查构建管道的代码检出步骤,并确保在构建步骤中检出 .apk 文件。您也可以查看日志来确认这一点。

[error]Error: No matching files were found with search pattern: D:\a\s***.apk

此错误表明您没有在默认工作目录中生成 xx.apk 文件。您可以按照以下步骤找到问题的根本原因并加以解决:

  1. gradlew build 任务的 working directory 留空并确保此任务成功生成 xx.apk 文件。

  2. 在 Android 签名任务中,使用 **\*.apk 模式。

  3. 确保 gradlew buildSigning and aligning APK 任务在同一个 Job. If you're using hosted agent to run those tasks, they must be in same job within same pipeline/stage 中,以便 Signing and aligning APK 任务可以直接访问 gradlew build任务。

    请确保这两个任务在同一个作业中。如果您有特殊原因必须将它们分开 jobs/stages/pipelines,请考虑使用 Artifacts-related tasksjobs/stages/pipelines.

    之间共享文件

    由于一个作业是 运行 作为一个单元顺序进行的一系列步骤,不同的作业将 运行 在 不同的 机器上,尽管这些代理被调用托管 windows/linux。所以建议把两个task放在同一个job中

  4. 如果问题仍然存在,但任务在同一作业中,请将 system.debug 变量设置为 true 并再次 运行 管道,然后您可以检查gradlew build 任务的详细信息。

    然后就可以找到xx.apk文件生成的输出路径了。之后 copy those files 到默认工作目录 ($(System.DefaultWorkingDirectory)) 并且签名任务可以找到该文件。