Android Studio - debug keystore Android Studio - debug keystore android android

Android Studio - debug keystore


It is at the same location: ~/.android/debug.keystore


If you use Windows, probably the location is like this:

C:\User\YourUser\.android\debug.keystore


You can specify your own debug keystore if you wish. This solution also gives you the ability to store your keys outside of the project directory as well as enjoy automation in the signing process. Yes you can go to File -> Project Structure and assign signing keystores and passwords in the Signing tab but that will put plaintext entries into your gradle.build file which means your secrets might be disclosed (especially in repository commits). With this solution you get the control of using your own keystore and the magic of automation during debug and release builds.

1) Create a gradle.properties (if you don't already have one).

The location for this file depends on your OS:

   /home/<username>/.gradle/ (Linux)   /Users/<username>/.gradle/ (Mac)   C:\Users\<username>\.gradle (Windows)

2) Add an entry pointing to yourprojectname.properties file. (example for Windows)

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties

3) Create yourprojectname.properties file in the location you specified in Step 2 with the following information:

keystore=C:\\path\\to\\keystore\\yourapps.keystorekeystore.password=your_secret_password

4) Modify your gradle.build file to point to yourprojectname.properties file to use the variables.

if(project.hasProperty("yourprojectname.properties")        && new File(project.property("yourprojectname.properties")).exists()) {    Properties props = new Properties()    props.load(new FileInputStream(file(project.property("yourprojectname.properties"))))    android {        signingConfigs {            release {                keyAlias 'release'                keyPassword props['keystore.password']                storeFile file(props['keystore'])                storePassword props['keystore.password']            }            debug {                keyAlias 'debug'                keyPassword props['keystore.password']                storeFile file(props['keystore'])                storePassword props['keystore.password']            }        }        compileSdkVersion 19        buildToolsVersion "20.0.0"        defaultConfig {            applicationId "your.project.app"            minSdkVersion 16            targetSdkVersion 17        }        buildTypes {            release {            }        }    }}dependencies {    ...}

5) Enjoy! Now all of your keys will be outside of the root of the directory and yet you still have the joys of automation for each build.

If you get an error in your gradle.build file about the "props" variable it's because you are not executing the "android {}" block inside the very first if condition where the props variable gets assigned so just move the entire android{ ... } section into the condition in which the props variable is assigned then try again.

I pieced these steps together from the information found here and here.