Gradle生成unsigned release apk

时间:2014-03-03 20:01:27

标签: android gradle

我有一个具有以下结构的项目:

Root
    \__main_project
    |
    \__modules
       \__
       |  library1
       |   
       \__
          library2

我的gradle中有以下配置:

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }

    signingConfigs {
        release {
            storeFile file('/home/home/.signing/test.keystore')
            storePassword 'testtest'
            keyAlias 'testtest'
            keyPassword 'testtest'
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

构建我的项目我运行以下命令:

./gradlew :main_project:assembleRelease

但它只生成main_project-release-unsigned.apk

所以我的问题是,当我指定所有必需的配置时,它会产生unsigned apk。 谢谢。

2 个答案:

答案 0 :(得分:8)

"官方"详细说明here解释了按照Google推荐的方式配置build.gradle文件的方法。

基本上,您可以在其中添加" signinConfig",您可以在其中指定密钥库的密码位置。 然后,在发布版本类型中,请参阅该签名配置。

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("myreleasekey.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

然后使用" assembleRelease"构建应用程序。任务。

答案 1 :(得分:1)

尝试./gradlew assembleRelease

您也可能想要扩充buildTypes发布部分

buildTypes {
    release {
        runProguard true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
        signingConfig signingConfigs.release
        zipAlign true
    }
}

另请参阅How to create a release signed apk file using Gradle?上的task askForPasswords,了解如何提示输入密码,以便将密码存储在此文件中。