I think you could also run it in a single command with
./gradlew -DsigningConfigs.mySigning.storePassword=... -DsigningConfigs.mySigning.keyPassword=... assemble
I tried this, but it didnt work.
I tried also putting these in my gradle.properties
signingConfigs.releaseSigning.storeFile=/tmp/android-keystore.ks
android.signingConfigs.releaseSigning.storeFile=/tmp/android-keystore.ks
which yields
10:25:02.616 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.NullPointerException: Cannot invoke method exists() on null object
10:25:02.616 [ERROR] [org.gradle.BuildExceptionReporter] at java_io_File$exists.call(Unknown Source)
10:25:02.616 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.internal.tasks.ValidateSigningTask.validate(ValidateSigningTask.groovy:57)
10:25:02.616 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.internal.tasks.ValidateSigningTask_Decorated.invokeMethod(Unknown Source)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:217)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
10:25:02.617 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:199)
10:25:02.618 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:526)
10:25:02.618 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:509)
10:25:02.618 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
10:25:02.618 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
In addition, I tried putting the value in some other property in gradle.properties such as
signStoreFile=/tmp/android-keystore.ks
and then try to refer to it via the build.gradle like this
android {
compileSdkVersion 16
buildToolsVersion "17"
signingConfigs {
releaseSigning {
storeFile project.signStoreFile
storePassword project.signStorePassword
keyAlias project.signKeyAlias
keyPassword project.signKeyPassword
}
}
which produces
* Where:
Build file '/Users/rainer/Documents/workspaces/privat/PtpWorkspace/OfParent/app/build.gradle' line: 45
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not find method storeFile() for arguments [/tmp/android-keystore.ks] on SigningConfigDsl_Decorated{name=releaseSigning, storeFile=null, storePassword=null, keyAlias=null, keyPassword=null, storeType=null}.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
I finally managed to get it "quasi" working via the following
android {
signingConfigs {
releaseSigning {
storeFile file(project.signStoreFile)
storePassword project.signStorePassword
keyAlias project.signKeyAlias
keyPassword project.signKeyPassword
}
}
...
However, I still cannot override it via
gradle build -DsignStorePassword=hello
I am still new to gradle so I guess there would be a way to achieve this.
cheers
- Rainer