Google Play - 上传新APK失败 - 带指纹的不同证书

时间:2014-10-30 08:01:45

标签: android intellij-idea gradle apk release

我在生成要上传到Google Play商店的新apk时出现问题。

最近我选择使用gradle来直接签署发布apk。为此,我正在阅读一个属性文件,其中包含有关用于签署apk的密钥库的所有详细信息。 以前我使用IntelliJ的向导来发布apk。

似乎向导以不同于gradle的方式签署apk,因此我无法将新apk上传到Google Play。

PS:gradle生成的apk是[root project] [root module] \ build \ outputs \ apk \

有没有人知道我做错了什么,或者是否使用其他方法对apk进行签名,从而使其与通过向导签名的方法不同。

1 个答案:

答案 0 :(得分:1)

我的问题似乎与我如何实现build.gradle有关。我修复了它,当你想为每种风格设置不同的密钥库时,它应该是这样的:

signingConfigs {
    println 'Sign apk config'

    falvor1 {
        /** Details for signing the application */
        def props = new Properties()
        props.load(new FileInputStream(rootProject.file("release.properties.flavor1")))

        storeFile file(rootProject.file(props.keyStore))
        storePassword props.keyStorePassword
        keyAlias props.keyAlias
        keyPassword props.keyAliasPassword
    }

    flavor2 {
        /** Details for signing the application */
        def props = new Properties()
        props.load(new FileInputStream(rootProject.file("release.properties.flavor2")))

        storeFile file(rootProject.file(props.keyStore))
        storePassword props.keyStorePassword
        keyAlias props.keyAlias
        keyPassword props.keyAliasPassword
    }
}

/** Add product flavours for all variants of application */
productFlavors {

    flavor1 {
        // Update the application ID/ Package name
        applicationId "com.my.application.flavor1"
        /* Update the version code & version name */
        versionCode 100
        versionName "1.0.0.1"
    }

    flavor2 {
        // Update the application ID/ Package name
        applicationId "com.my.application.flavor2"
        /* Update the version code & version name */
        versionCode 200
        versionName "2.0.0.2"
    }
}

buildTypes {
    debug {

        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

        zipAlign true

    }


    release {

        //Only use the release key on a release buildType
        productFlavors.flavor1.signingConfig signingConfigs.flavor1
        productFlavors.flavor2.signingConfig signingConfigs.flavor2

        runProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

        zipAlign true


    }
}

release.properties.flavor 结构

// Name of the keystore file
keyStore=flavor1.keystore
// keystore password
keyStorePassword=flavor1pass
// Key alias
keyAlias=flavor1_alias
// Key password
keyAliasPassword=flavor1pass