J'essaie de trouver un moyen de pouvoir changer le nom de l'application de mon application par type de construction dans gradle.
Par exemple, j'aimerais avoir la version de débogage <APP_NAME>-debug
et la version qa <APP-NAME>-QA
.
Je suis familier avec:
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
}
Cependant, je n'arrive pas à trouver une commande gradle pour appliquer le changement de l'application dans le lanceur.
la source
release
chaînes.release
partie, je vois cela un peu différemment car on pourrait également vouloir tester les problèmes de localisation tout en permettant aux builds "release" et "test" de coexister sur le même périphérique. Dans un tel cas, les deux versions peuvent se retrouver avec la même étiquette de lanceur, causant probablement une certaine confusion. C'est ce que j'essayais d'éviter.release
mode. Et n'utilisez cette ressource de chaîne que pourapp_name
, pas pour un autre rôle.app_name
, même si ce n'est pas nécessaire (par exemple, vous avez des développeurs français ou allemands qui ne parlent pas anglais et doivent donc la faire traduire). Pour tester pour voir si larelease
version non modifiée deapp_name
fonctionne, avec ses traductions, testez larelease
construction ou créez unnear-release
type de construction qui ajoute simplement le suffixe d'ID d'application et laisse les chaînes seules.Vous pouvez utiliser quelque chose comme ça
Vous pouvez utiliser @ string / app_name dans les fichiers AndroidManifest.xml.
Assurez-vous de supprimer app_name de values / folder (aucune entrée portant ce nom).
la source
resValue "string", "app_name", System.getenv("APP_NAME") ?: "MyApp"
Vous pouvez le faire avec gradle:
Puis dans votre
AndroidManifest.xml
put:Remarque: cela fonctionne également avec
productFlavors
.la source
Pour prendre en charge les traductions, procédez comme suit:
1. supprimez la chaîne "app_name"
2. ajouter au classement
3. Définissez le nom de l'application dans le manifeste comme "@ string / app_name"
4. Ajouter aux valeurs strings.xml
la source
app_name
dans productFlavors debuild.gradle
fichier. Une approche extrêmement pratique et flexible lorsque vous en avez besoin.Le nom de l'application est visible par l'utilisateur et c'est pourquoi Google vous encourage à le conserver dans votre fichier strings.xml. Vous pouvez définir un fichier de ressources de chaîne distinct contenant des chaînes spécifiques à vos buildTypes. Il semble que vous ayez un
qa
buildType personnalisé . Si ce n'est pas vrai, ignorez la partie qa ci-dessous.la source
Nous avons besoin d'une solution pour prendre en charge le nom de l'application avec la localisation (pour plusieurs langues). J'ai testé avec la solution @Nick Unuchek, mais la construction a échoué (introuvable @ string /). un petit changement pour corriger ce bogue: fichier build.gradle:
valeurs \ strings.xml:
values-en \ strings.xml:
Manifest.xml:
la source
tools:replace="android:label"
enapplication
enAndroidManifest
Pour une solution plus dynamique basée sur le gradle (par exemple, définissez un nom d'application de base dans main's
strings.xml
une fois, et évitez de vous répéter dans chaque combinaison saveur / type de constructionstrings.xml
), voir ma réponse ici: https://stackoverflow.com/a/32220436/1128600la source
Vous pouvez utiliser
strings.xml
dans différents dossiers, voir les valeurs de chaîne séparées Android pour les versions de version et de débogage .Alors, créez ce fichier:
Puis collez-le dans les dossiers
app\src\debug\res\values\
etapp\src\release\res\values\
. Remplacez "le nom de votre application" dans les fichiers de débogage et de version. Supprimer l'app_name
élément destrings.xml
dansapp\src\main\res\values\
le dossier.En
AndroidManifest
vous aurez le mêmeAucun changement du tout. Même si vous avez ajouté une bibliothèque avec son
AndroidManifest
fichier etstrings.xml
.la source
Comme l'auteur demande à faire cela dans Gradle , nous pouvons supposer qu'il veut le faire dans le script et non dans les fichiers de configuration. Étant donné qu'Android Studio et Gradle ont été fortement mis à jour et modifiés au cours de la dernière année (~ 2018), toutes les autres réponses ci-dessus semblent trop déformées. La solution la plus simple consiste à ajouter les éléments suivants à votre
app/build.gradle
:la source