apk - 为什么在对我的 APK 执行 "no manifest."时会得到 "jar is unsigned."和 "jarsigner -verify -verbose -certs"

标签 apk signing jarsigner

我的 Android 项目之一正在生成未签名的 APK。我正在使用下面提供的配置,然后验证生成的 APK。 我确定 Gradle 正在使用我提供的 keystore 文件,因为我尝试更改路径和密码,但构建失败。

APK 毕竟没有签名

jarsigner -verify -verbose -certs/Users/viliuskraujutis/.../path-to-newly-created.apk

输出是这样的:

  s = signature was verified
  m = entry is listed in manifest
  k = at least one certificate was found in keystore

no manifest.

jar is unsigned.

从 build.gradle 签名

对于我这样签名的上下文:

android {
...
    signingConfigs {
        release {
            storeFile file("my-key-used-in-other-successful-project.keystore")
            storePassword "my-password-used-in-other-successful-project"
            keyAlias "my-alias-used-in-other-successful-project"
            keyPassword "my-password-used-in-other-successful-project"
        }
    }

最佳答案

您的 minSdkVersion 可能为 24 或更高。如果是这种情况,那么 AGP 将使用一种更高效的签名方案,称为“V2 签名”,并且由于 24+ 上的所有 Android 设备都支持此方案,因此不再需要使用“v1 方案”进行签名(即 jar 签名)。 V2 方案完全独立于 jar 签名,这就是 jarsigner 认为 APK 未签名的原因。如果您使用 apksigner(Android 工具中提供),那么您可以检查您的 APK 是否确实已正确签名。

关于apk - 为什么在对我的 APK 执行 "no manifest."时会得到 "jar is unsigned."和 "jarsigner -verify -verbose -certs",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73678450/

相关文章:

android - 如何制作难以逆向工程的安全签名APK?

android - 测试 adb 更新与安装?

Java Applet.jar 被安全设置阻止

inno-setup - 在 Inno Setup 脚本中提供 SignTool 配置

android - 相同的 keystore ,但不同应用程序的 key 不同?

java - 已签名的 java 应用程序 (.jar) 在 Firefox 中被视为不受信任

android - jarsigner 无法在 Ubuntu 上运行

安卓白标

gradle - JarSigner Ant.signjar用于无依赖项的jar文件,但在Gradle Script中包含依赖项时则不适用于jar

java - 如何以编程方式验证使用 jarsigner 签名的 jar