¿Android Studio firma las compilaciones de depuración? Si es así, ¿dónde está el almacén de claves que utiliza para hacerlo?
¿Android Studio firma las compilaciones de depuración? Si es así, ¿dónde está el almacén de claves que utiliza para hacerlo?
Respuestas:
Está en la misma ubicación: ~/.android/debug.keystore
Si usa Windows, probablemente la ubicación sea así:
C: \ Usuario \ YourUser \ .android \ debug.keystore
Puede especificar su propio almacén de claves de depuración si lo desea. Esta solución también le brinda la posibilidad de almacenar sus claves fuera del directorio del proyecto, así como disfrutar de la automatización en el proceso de firma. Sí, puede ir File -> Project Structure
y asignar firmas de almacenes de claves y contraseñas en la Signing
pestaña, pero eso colocará entradas de texto sin formato en su archivo gradle.build, lo que significa que sus secretos pueden ser revelados (especialmente en las confirmaciones del repositorio). Con esta solución, obtiene el control de usar su propio almacén de claves y la magia de la automatización durante las compilaciones de depuración y lanzamiento.
1) Cree un gradle.properties (si aún no tiene uno).
La ubicación de este archivo depende de su sistema operativo:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
2) Agregue una entrada que apunte al yourprojectname.properties
archivo.
(ejemplo para Windows)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3) Cree el yourprojectname.properties
archivo en la ubicación que especificó en el Paso 2 con la siguiente información:
keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password
4) Modifique su gradle.build
archivo para que apunte al yourprojectname.properties
archivo para usar las 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) ¡Disfruta! Ahora todas sus claves estarán fuera de la raíz del directorio y, sin embargo, todavía tendrá el placer de la automatización para cada compilación.
Si obtiene un error en su archivo gradle.build sobre la variable "props" es porque no está ejecutando el bloque "android {}" dentro de la primera if
condición donde props
se asigna la variable, así que simplemente mueva todo el android {... } sección en la condición en la que se asigna la variable props y vuelva a intentarlo.
Reuní estos pasos a partir de la información que se encuentra aquí y aquí .
La ruta del archivo debug.keystore de Android Studio depende de la variable de entorno ANDROID_SDK_HOME.
Si ANDROID_SDK_HOME está definido, entonces el archivo se coloca en la subcarpeta del SDK llamada .android .
Cuando no está definido, el almacén de claves se coloca en la ruta de inicio del usuario en la misma subcarpeta:
- % HOMEPATH% \. Android \ en Windows
- $ HOME / .android / en Linux
Así es como finalmente creé el archivo ~ / .android / debug.keystore.
Primero algunos antecedentes. Tengo una nueva computadora portátil de viaje. Android Studio instalado. Cloné mi proyecto de Android desde git hub. El proyecto no se ejecutará. Finalmente descubrí que no se creó debug.keystore ... y no pude averiguar cómo hacer que Android Studio lo creara.
Finalmente, creé un nuevo proyecto en blanco ... ¡y eso creó debug.keystore!
Espero que esto ayude a otros que tienen este problema.
Si usa Windows, lo encontrará siguiendo esto: Archivo -> Estructura del proyecto -> Facetas
eligió su proyecto de Android y en la ventana "Facet 'Android'" haga clic en la pestaña "Empaquetado", encontrará lo que desea