从Android工作室和控制台构建的Android APK具有不同的SHA指纹

Mik*_*ail 8 android apk gradlew android-studio android-gradle-plugin

在构建签名发布APK时,我遇到了以下内容:如果我从android studio(via Build- > Generate Signed APK...)构建带有这样的build.gradle文件的签名apk (仅限相关部分):

signingConfigs {
    release {
        storeFile file('/keystore/location/mykeystore.keystore')
        storePassword 'storepassword'
        keyAlias 'key'
        keyPassword 'keypassword'
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
Run Code Online (Sandbox Code Playgroud)

生成的apk指纹是YY:YY.
但是,如果我从控制台建立我的APK描述这里build.gradle这样的:

buildTypes {
    release {
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用相同的密钥库文件对其进行签名,得到的apk指纹就是XX:XX.

此外,两个SHA指纹都与我的调试证书SHA指纹不同.这种行为的原因是什么?

我正在使用buildToolsVersion 23.0.0
android studio gradle版本1.3.0
android sdk工具版本24.3.4
android studio版本1.3.1

Jim*_*aca 1

您检查了密钥库的内容吗?指纹必须与其中一份证书相匹配。您的密钥库中可能有多个证书,也许在从控制台签名期间使用了不同的证书?您可以通过运行以下命令来检查证书:

keytool -v -list -keystore /路径/到/密钥库

输入密钥库的密码,您应该会获得别名列表。我还会检查调试密钥库以确保那里没有其他证书。

我能想到的唯一另一种可能性是路径问题导致使用不同的密钥库。