Gradle define el valor de la ruta absoluta para un archivo de almacén de claves
Me gustaría guardar mi almacén de claves fuera del directorio del proyecto. No quiero almacenar caminos de archivos dentro del repositorio así que delegé los valores a las variables gradle apropiadas en ~/.gradle/gradle.properties
No puedo conseguir gradle para aceptar una ruta absoluta como: /Users/username/.gradle/keystores/project/release.key
o ~/.gradle/keystores/project/release.key
He intentado: storeFile file(RELEASE_STORE_FILE)
y storeFile new File(RELEASE_STORE_FILE)
- ¿Cómo obtener tipos de parámetros de métodos en plantillas en vivo en Intellij IDEA?
- 'Dependencias' no se puede aplicar a '(groovy.lang.Closure)'
- Android Gradle Lee el nombre de la aplicación de strings.xml
- Grails save () Objeto de dominio en realidad hace una selección?
- SignedConfigs me da un error de Lint en build.gradle después de actualizar a v22
Ninguno de ellos parece funcionar, sin embargo.
¿Cómo puedo pasar un valor de ruta absoluta al archivo del almacén de claves a través de la variable RELEASE_STORE_FILE
?
android { signingConfigs { release { storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PASS keyAlias RELEASE_ALIAS keyPassword RELEASE_KEY_PASS } } }
Y el archivo ~/.gradle/gradle.properties
:
RELEASE_STORE_FILE=/Users/username/.gradle/keystores/project/release.key RELEASE_STORE_PASS=****** RELEASE_ALIAS=****** RELEASE_KEY_PASS=******
En resumen: Quiero pasar un valor de trayectoria absoluta al gradle.
- Groovy, Scala, Clojure, etc scripts en Android
- Incorporar Groovy en una aplicación Android Java
- Cómo definir y utilizar una constante en el script de compilación de Gradle (Android)?
- Prueba de una biblioteca de Android con Robolectric
- Eclipse utiliza la variable PATH antigua para ejecutar el proceso de línea de comandos en la tarea Gradle?
- Es groovy un lenguaje de desarrollo potencial para Android
- En Android Gradle build.gradle ¿Qué es "it" en it.buildConfigField?
- Cómo configurar Android Studio proyecto desde cero que me permite utilizar groovy
Terminé usando una solución interesante de este sitio.
La idea es mantener variables en una carpeta separada que se almacena en un repositorio remoto .
En el archivo ~/.gradle/gradle.properties
se coloca:
Keys.repo=/Users/username/.signing
Donde Keys.repo
es la ruta local a su repositorio remoto.
Más adelante en /Users/username/.signing/YourProjectName.properties
tienes:
RELEASE_STORE_FILE=/YourProjectName/release.keystore //in fact it's a relative path RELEASE_STORE_PASS=xxxxx RELEASE_ALIAS=xxxxx RELEASE_KEY_PASS=xxxxx
Necesita almacenar el archivo /Users/username/.signing/YourProjectName/release.keystore
en la ruta /Users/username/.signing/YourProjectName/release.keystore
La configuración se utiliza de la siguiente manera:
android { signingConfigs { debug { /* no changes - usual config style */ } release { if (project.hasProperty("Keys.repo")) { def projectPropsFile = file(project.property("Keys.repo") + "/YourProjectName.properties") if (projectPropsFile.exists()) { Properties props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props['RELEASE_STORE_FILE'])) storePassword props['RELEASE_STORE_PASS'] keyAlias props['RELEASE_ALIAS'] keyPassword props['RELEASE_KEY_PASS'] } } else { println "=======================================================" println "[ERROR] - Please configure release-compilation environment - eg in ~/.signing directory" println "=======================================================" } } } }
Conseguí alrededor de esto usando un enlace simbólico
-
Crear keylink.lnk de enlace simbólico en el módulo de aplicación
Ln -s [path-to-keystore] keystore.lnk
-
Luego use
keystore.lnk
engradle.properties
RELEASE_STORE_FILE = keystore.lnk (no use comillas)
Ahora las instrucciones de gradle funcionarán.
- Video ffmpeg comprimido pero no se reproduce en el navegador
- Restablecer gradle predeterminado y plugin para android studio para estar al día al crear nuevos proyectos?