Build Unsigned APK with Gradle

You don't have to set any option, just run the usual task:

$ gradle assemble

This will generate two files in project/build/apk/

app-debug-unaligned.apk 
app-release-unsigned.apk

To generate an unsigned apk do the following:

  • define a signingConfig with empty configuations like this:

    signingConfigs{
        unsigned{
            storePassword = ""
            keyAlias = ""
            keyPassword = ""
        }
    }
    
  • define in the buildTypes for your release Version with the unsigned Configuration:

    buildTypes{
        release{
            signingConfig signingConfigs.unsigned
        }
    }
    

I get this from the adt-dev group, where Xavier Ducrohet write:

The current behavior is to check that the signing config is fully configured(*) and if it is, it generates a signed APK, otherwise an unsigned APK.

(*) fully configured right now means the value for store, alias and passwords are present, but does not include that the keystore is present.

UPDATE 2013-12-19

As withoutclass mentioned this doesn't work with the gradle plugin version 0.6.3.

Anyway it's possible to generate an unsigned APK with gradle: just let the signingConfig entry of a flavor or buildType empty. It should look like this:

productFlavors{
    // with this config you should get a "MyProject-flavorUnsigned-release-unsigned.apk"
    flavorUnsigned{
        versionCode = 9
        packageName defaultPkgName
    }
}

buildTypes{
    // with this config you should get a "MyProject-release-unsigned.apk"
    release{
        packageNameSuffix '.release'
    }
}

just assign null to signingConfig

android {
  buildTypes {
    debug {
      signingConfig null
    }
  }
}