首页 > 解决方案 > 使用 jarsigner 在 Azure 管道上签名 Android 包失败,并出现错误“请指定别名”

问题描述

我有一个 Azure DevOps 管道,可以很好地构建一个 android 应用程序。我现在想签署这个管道创建的 android 活动包,以便我可以分发它。问题是,我必须签字。我使用这个 yaml 命令对其进行签名

- task: CmdLine@2
displayName: 'Signing and aligning AAB file(s) **/*.aab'
inputs:
  script: 'jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore 
   releaskey.keystore -storepass $(KeystorePassword) -keypass $(KeystorePassword) 
   /Users/runner/work/1/s/Platforms/MobileApp.Android/obj/
   Release/android/bin/mobileapp.aab'

这是管道中运行的最终命令:jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore releasekey.keystore -storepass *** -keypass *** /Users/runner/work/1/s/Platforms/MobileApp.Android/obj/Release/android/bin/mobileapp.aab

但问题是,最后我得到了错误:

请指定别名

我去了这里的 jarsigner 文档,它声明“别名是在 -keystore 或默认密钥库指定的密钥库中定义的。” 但是,尽管我精确了一个密钥库,但此时构建失败了。

标签: androidxamarin.androidazure-pipelines

解决方案


您可以尝试为您的 keystore 添加别名。

例如:

jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore xample.jks bundle.aab keystoreAlias

更多内容可以参考这个帖子:

如何使用 azure 管道签署 Android 应用程序包


推荐阅读