How to set up gradle and android studio to do release build?

128,446

Solution 1

in the latest version of android studio, you can just do:

./gradlew assembleRelease

or aR for short. This will produce an unsigned release apk. Building a signed apk can be done similarly or you can use Build -> Generate Signed Apk in Android Studio.

See the docs here

Here is my build.gradle for reference:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}
apply plugin: 'android'

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }

    // Move the tests to tests/java, tests/res, etc...
    instrumentTest.setRoot('tests')

    // Move the build types to build-types/<type>
    // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
    // This moves them out of them default location under src/<type>/... which would
    // conflict with src/ being used by the main source set.
    // Adding new build types or product flavors should be accompanied
    // by a similar customization.
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')

}

buildTypes {
    release {

    }
}

Solution 2

  1. open the Build Variants pane, typically found along the lower left side of the window:

Build Variants

  1. set debug to release
  2. shift+f10 run!!

then, Android Studio will execute assembleRelease task and install xx-release.apk to your device.

Solution 3

No need to update gradle for making release application in Android studio.If you were eclipse user then it will be so easy for you. If you are new then follow the steps

1: Go to the "Build" at the toolbar section. 2: Choose "Generate Signed APK..." option. enter image description here

3:fill opened form and go next 4 :if you already have .keystore or .jks then choose that file enter your password and alias name and respective password. 5: Or don't have .keystore or .jks file then click on Create new... button as shown on pic 1 then fill the form.enter image description here

Above process was to make build manually. If You want android studio to automatically Signing Your App

In Android Studio, you can configure your project to sign your release APK automatically during the build process:

On the project browser, right click on your app and select Open Module Settings. On the Project Structure window, select your app's module under Modules. Click on the Signing tab. Select your keystore file, enter a name for this signing configuration (as you may create more than one), and enter the required information. enter image description here Figure 4. Create a signing configuration in Android Studio.

Click on the Build Types tab. Select the release build. Under Signing Config, select the signing configuration you just created. enter image description here Figure 5. Select a signing configuration in Android Studio.

4:Most Important thing that make debuggable=false at gradle.

    buildTypes {
        release {
           minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-  android.txt'), 'proguard-rules.txt'
        debuggable false
        jniDebuggable false
        renderscriptDebuggable false
        zipAlignEnabled true
       }
     }

visit for more in info developer.android.com

Solution 4

To activate the installRelease task, you simply need a signingConfig. That is all.

From http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks:

Finally, the plugin creates install/uninstall tasks for all build types (debug, release, test), as long as they can be installed (which requires signing).

Here is what you want:

Install tasks
-------------
installDebug - Installs the Debug build
installDebugTest - Installs the Test build for the Debug build
installRelease - Installs the Release build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallDebugTest - Uninstalls the Test build for the Debug build
uninstallRelease - Uninstalls the Release build   <--- release

Here is how to obtain the installRelease task:

Example build.gradle:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'com.android.application'

android {
  compileSdkVersion 22
  buildToolsVersion '22.0.1'

  defaultConfig {
    applicationId 'demo'
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName '1.0'
  }

  signingConfigs {
      release {
          storeFile <file>
          storePassword <password>
          keyAlias <alias>
          keyPassword <password>
      }
  }

  buildTypes {
    release {
        signingConfig signingConfigs.release
    }
  }
}

Solution 5

This is a procedure to configure run release version

1- Change build variants to release version.

enter image description here

2- Open project structure. enter image description here

3- Change default config to $signingConfigs.release enter image description here

Share:
128,446

Related videos on Youtube

IBr
Author by

IBr

Updated on May 16, 2020

Comments

  • IBr
    IBr about 4 years

    I want to build android app and start signing it. For that I need to have Release version of apk. Google documentation suggests only Eclipse and ant ways to have release builds: http://developer.android.com/tools/publishing/app-signing.html#releasecompile

    However I cannot find how to force gradle build release version of apk. build.gradle does not give any hints either. gradlew tasks suggests, that there is no install Release configuration, but uninstall release exists:

    Install tasks
    -------------
    installDebug - Installs the Debug build
    installTest - Installs the Test build for the Debug build
    uninstallAll - Uninstall all applications.
    uninstallDebug - Uninstalls the Debug build
    uninstallRelease - Uninstalls the Release build
    uninstallTest - Uninstalls the Test build for the Debug build
    

    My build.gradle:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.5.+'
        }
    }
    apply plugin: 'android'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile 'com.android.support:support-v4:13.0.+'
        compile files('libs/android-support-v4.jar')
        compile project(":libraries:ActionBarSherlock")
        compile project(":libraries:CollabsibleSearchMenu")
    }
    
    android {
        compileSdkVersion 18
        buildToolsVersion "18.0.1"
    
        defaultConfig {
            minSdkVersion 8
            targetSdkVersion 16
        }
    }
    

    What I am missing?

    • free3dom
      free3dom almost 11 years
      I don't currently use Gradle in Android Studio, but the way to do it using the original Ant build is to simply use Build -> Generate Signed APK from the menu.
    • IBr
      IBr almost 11 years
      Thanks I missed that, it will do. But still I want to know how to generate release version of unsigned package seperately and then do signing and whatever I want with it.
    • owe
      owe almost 11 years
      you should get automatically a release and debug version of your under your build variants. If you want an unsigned package let me know.
  • Admin
    Admin over 10 years
    In the latest version of Android Studio (0.2.11) Generate Signed Apk no longer works. You're directed to set up a signing configuration in your gradle.bundle file, which (presumably) has to be run by hand from the command line unless you're willing to hardcode your password there: tools.android.com/tech-docs/new-build-system/…
  • Bagusflyer
    Bagusflyer over 10 years
    Why the newer the Android Studio, the more difficult to use?
  • Lou Morda
    Lou Morda over 9 years
    how do you open Build Variants? is this something i can do in Android Studio?
  • Jake Nixon
    Jake Nixon about 9 years
    The build variants is on the left hand side, please see the attached screenshot for a better idea of location :) Screenshot
  • jrhamza
    jrhamza almost 9 years
    Tried this. But getting error : "app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.Open Project Structure Dialog"
  • ipcjs
    ipcjs almost 9 years
    @jrhamza Follow it prompts you to add a release key.
  • sivag1
    sivag1 over 8 years
    Does this mean that we keep the password in a readable format? How to handle for projects in public repository, in order to keep the passwords private?
  • Jared Burrows
    Jared Burrows over 8 years
    You can put in a local gradle.properties or store them in the CI.
  • Jigar
    Jigar almost 8 years
    You are a life saver brother.
  • aardvarkk
    aardvarkk over 7 years
    Amazing how well hidden this simple switch is if you've never had the Build Variants window open!
  • hiddeneyes02
    hiddeneyes02 about 6 years
    Could not find method storeFile()
  • norekhov
    norekhov about 5 years
    Set storeFile file(filename)
  • paul_f
    paul_f about 5 years
    signingConfig signingConfigs.release in build types made the difference for me!
  • Julius
    Julius almost 5 years
    It would've been too obvious to put it in the configurations!
  • mitch
    mitch almost 4 years
    You are a god among men
  • coolcool1994
    coolcool1994 about 3 years
    Amennnnnnnnnnn.