问题描述
我正在向 Aptoide 应用商店发布一个应用。他们给了我一个空白的 apk,用我的主应用程序中使用的相同密钥库对其进行签名。我使用 command 和 jarsigner 签署了应用程序。
应用签名成功,但显示警告:
签名者的证书是自签名的
我搜索了它,但大多数可用的解决方案是针对 SSL 证书,而不是 apk 签名。
解决方法
tldr;它对 Android 应用没有任何影响。
首先,您应该使用 apksigner
而不是 jarsigner
来签署您的 APK:apksigner
是专门为 Android 创建的用于签署 APK 并且效率更高,而 jarsigner
旨在签署任何 JAR,因此您看到的某些消息在 Android 世界中没有多大意义。
要解释此特定消息,您必须了解在创建证书(在密钥库中)时,该证书也经过加密签名。如果由“受信任的实体”签名,则看到此证书的人可以验证该证书是否由您有效创建。但是,Android 不验证证书的签名(注意:它确实验证APK的签名),所以这个签名是没有用的.由于证书需要签名,最简单的方法是使用颁发证书的私钥对其进行签名:这就是为什么它被称为自签名。