我正在尝试检查 APK 上的签名信息。文档说要使用
jarsigner -verify -verbose -certs app.apk
并且各种SO问题都同意。但是如果我抓住 JDK 1.7 并这样做,我会得到错误:
Please specify alias name
考虑到谷歌搜索错误消息只返回指向 jarsigner 源的链接,这很难处理。
这是怎么回事?
只有在签署 APK 时才需要别名。你用的是什么版本的JDK?是 Sun/Oracle JDK 吗?
顺便说一句,您不应该使用 Java 7 进行 android 开发,它不受官方支持。另请注意,jarsigner 默认摘要算法已更改,因此如果您未明确指定摘要算法,使用 Java 6 和 Java 7 进行签名将产生不同的结果。
如果别名包含空格,我发现可能会发生相同的错误:
ALIAS WITH SPACES
我设法通过用引号指定别名来克服这个问题。这甚至适用于 Maven 文件的属性:'ALIAS WITH SPACES'
使用:
$ jarsigner -verify -verbose -certs app.apk
在应用程序 > 构建 > 输出 > apk路径
如果您看到 CN 短语,那么您的 .apk 是“调试”,
否则恭喜!你签署了你的 .apk,现在它的“发布”。