Currently I'm trying to learn Gradle to build Android APKs. How to set an option in gradle to build an unsigned APK?
问题:
回答1:
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
回答2:
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'
}
}
回答3:
just assign null to signingConfig
android {
buildTypes {
debug {
signingConfig null
}
}
}
回答4:
If you want to make a build type act that is unsigned (just like a debug build), do the following:
myBuildType {
initWith debug
...
}