Estoy tratando de encontrar una manera de poder cambiar el nombre de la aplicación de mi aplicación por tipo de compilación en gradle.
Por ejemplo, me gustaría tener la versión de depuración <APP_NAME>-debugy la versión qa tener <APP-NAME>-QA.
Estoy familiarizado con:
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
}
Sin embargo, parece que no puedo encontrar un comando gradle para aplicar el cambio de la aplicación cuando estoy en el iniciador.
fuente

releasecadenas.releaseparte, veo que de manera un poco diferente, ya que uno también podría probar los problemas de localización al tiempo que permite que las compilaciones de "lanzamiento" y "prueba" coexistan en el mismo dispositivo. En tal caso, ambas compilaciones pueden terminar con la misma etiqueta de iniciador, lo que probablemente cause cierta confusión. Eso es lo que estaba tratando de evitar.releasemodo. Y solo use este recurso de cadena paraapp_name, no para ningún otro rol.app_name, aunque no sea necesario (por ejemplo, tiene desarrolladores franceses o alemanes que no hablan inglés y, por lo tanto, deben traducirlo). Para realizar pruebas para ver si lareleaseversión no modificada de lasapp_nameobras, con sus traducciones, prueba lareleasecompilación o crea unnear-releasetipo de compilación que solo agrega el sufijo de ID de la aplicación y deja las cadenas en paz.Puedes usar algo como esto
Puede usar @ string / app_name en los archivos AndroidManifest.xml.
Asegúrate de eliminar app_name de los valores / carpeta (ninguna entrada con este nombre).
fuente
resValue "string", "app_name", System.getenv("APP_NAME") ?: "MyApp"Puedes hacer esto con gradle:
Luego en tu
AndroidManifest.xmlpuesto:Nota: también funciona con
productFlavors.fuente
Para apoyar las traducciones, haga esto:
1. eliminar la cadena "nombre_aplicación"
2. agregar a gradle
3. Establezca el nombre de la aplicación en el Manifiesto como "@ string / app_name"
4. Agregar a valores strings.xml
fuente
app_nameen la sección del archivo productFlavorsbuild.gradle. Un enfoque extremadamente conveniente y flexible cuando lo necesita.El nombre de la aplicación es visible para el usuario, y es por eso que Google lo alienta a mantenerlo en su archivo strings.xml. Puede definir un archivo de recursos de cadena separado que contenga cadenas que sean específicas para sus buildTypes. Parece que puede tener un
qabuildType personalizado . Si eso no es cierto, ignore la parte qa a continuación.fuente
Necesitamos una solución para admitir el nombre de la aplicación con localización (para varios idiomas). He probado con la solución @Nick Unuchek, pero la construcción ha fallado (no se ha encontrado @ string /). un pequeño cambio para solucionar este error: archivo build.gradle:
valores \ cadenas.xml:
values-en \ strings.xml:
Manifest.xml:
fuente
tools:replace="android:label"enapplicationenAndroidManifestPara obtener una solución más dinámica basada en gradle (p. Ej., Establezca un nombre de aplicación base en main
strings.xmluna vez y evite repetirlo en cada combinación de sabor / compilaciónstrings.xml), vea mi respuesta aquí: https://stackoverflow.com/a/32220436/1128600fuente
Puede usar
strings.xmlen diferentes carpetas, vea los valores de cadena separados de Android para las versiones de lanzamiento y depuración .Entonces, crea este archivo:
Luego péguelo en
app\src\debug\res\values\yapp\src\release\res\values\carpetas. Reemplace "Su nombre de aplicación" en depurar y liberar archivos. Retireapp_nameelemento destrings.xmlenapp\src\main\res\values\carpeta.En
AndroidManifestti tendrás lo mismoNo hay cambios en absoluto. Incluso si agregó una biblioteca con su
AndroidManifestarchivo ystrings.xml.fuente
Como el autor pide hacer esto en Gradle , podemos suponer que quiere hacerlo en el script y no en los archivos de configuración. Dado que tanto Android Studio como Gradle se han actualizado y modificado en gran medida en el último año (~ 2018), todas las demás respuestas anteriores parecen demasiado retorcidas. La manera más fácil es agregar lo siguiente a su
app/build.gradle:fuente