具有两种风格的应用生成相同的密钥散列

时间:2017-11-30 11:02:43

标签: android facebook code-signing android-keystore android-productflavors

我有两个来自同一个项目的应用程序有两种不同的风格,他们有Facebook登录,其中一个已发布并且工作正常,问题在于其他风格,每个东西在调试中工作正常,但是当我尝试在发布时使用facebook登录我得到了无效的密钥哈希,密钥哈希不匹配... 我尝试重新生成密钥哈希很多次,即使使用不同的密钥库,但我有相同的结果,我甚至尝试在错误消息中复制密钥哈希,没有运气。 然后我将密钥哈希与Facebook控制台中已发布应用程序的密钥哈希值进行了比较,它就在那里。

我的问题是为什么这两种口味具有相同的密钥哈希,即使它们在不同的清单文件中有不同的包名称和facebook ApplicationIds?

这是我的build.gradle

android {
signingConfigs {
    release {
        keyAlias 'alias'
        keyPassword '********'
        storeFile file('keystore.jks')
        storePassword '********'
        v2SigningEnabled false
    }
}
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
    minSdkVersion 19
    targetSdkVersion 25
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
}

buildTypes {
    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    release {

        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
flavorDimensions "app"
productFlavors {
    A {
        dimension "app"
        applicationId "com.app1"
        versionCode 12
        versionName '1.12'
        resValue "string", "app_name", "App1"
        resValue "string", "facebook_app_id", "1**************7"
        resValue "string", "fb_login_protocol_scheme", "fb1**************7"
    }

    B {
        dimension "app"
        applicationId "com.app2"
        versionCode 0
        versionName '1.0'
        resValue "string", "app_name", "App2"
        resValue "string", "facebook_app_id", "1**************5"
        resValue "string", "fb_login_protocol_scheme", "fb1**************5"
    }
}

1 个答案:

答案 0 :(得分:1)

对于具有相同密钥库的两种变体,您使用相同的签名配置,请为每个变体提供不同的密钥库。