简体   繁体   中英

Android Studio: how to generate signed apk using Gradle?

I've searched on Google and SO but cannot find my answer.

This is the first time I'm working with the gradle system and I am now at the point of generating a signed APK to upload to google play (Project is imported from eclipse).

Now I've read the part here http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Building-and-Tasks that you should add signingConfigs to your build.gradle

I've added these lines and now I saw that you need to run ./gradlew assembleRelease but running this in my cmd returns 'gradle' is not recognized as an internal or external command, operable program or batch file. I've also tried to right click on the build.gradle and run it, saying it was sucessful but once I look in the build/apk folder only a file called app-debug-unaligned.apk

So how do I generate the signed apk using the Gradle system?

There are three ways to generate your build as per the buildType . (In your case, it's release but it can be named anything you want.)

  1. Go to Gradle Task in right panel of Android Studio and search for assembleRelease or assemble(#your_defined_buildtype) under Module Tasks

  2. Go to Build Variant in Left Panel and select the build from drop down

  3. Go to project root directory in File Explore and open cmd/terminal and run:

    Linux: ./gradlew assembleRelease or assemble(#your_defined_buildtype)

    Windows: gradlew assembleRelease or assemble(#your_defined_buildtype)

If you want to do a release build (only), you can use Build > Generate Signed apk . For other build types, only the above three options are available.

You can find the generated APK in your module/build directory having the build type name in it.

It is possible to take any existing Android Studio gradle project and build/sign it from the command line without editing any files. This makes it very nice for storing your project in version control while keeping your keys and passwords separate:

./gradlew assembleRelease -Pandroid.injected.signing.store.file=$KEYFILE -Pandroid.injected.signing.store.password=$STORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD

You can use this code

android {
   ...
    signingConfigs {
        release {
            storeFile file("../your_key_store_file.jks")
            storePassword "some_password"
            keyAlias "alias_name"
            keyPassword "key_password"
        }
    }

    buildTypes {

        release {
            signingConfig signingConfigs.release
        }
    }
   ...
}

then from your terminal run

./gradlew assembleRelease

you will get the apk at

your-android-app/build/outputs/apk/your-android-app-release.apk

我认为这可以帮助您https://www.timroes.de/2013/09/22/handling-signing-configs-with-gradle/然后只需从Build Variants选择Release

构建菜单 > 生成签名的 apk

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM