Estou tentando descobrir uma maneira de alterar o nome do aplicativo do meu aplicativo por tipo de compilação em gradle.
Por exemplo, eu gostaria que a versão de depuração tivesse <APP_NAME>-debug
e a versão qa tivesse <APP-NAME>-QA
.
Estou familiarizado com:
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
}
No entanto, não consigo encontrar um comando gradle para aplicar a alteração do aplicativo no iniciador.
fonte
release
strings.release
parte não , vejo que, de maneira um pouco diferente, também é possível testar problemas de localização, enquanto permite que as compilações "release" e "test" coexistam no mesmo dispositivo. Nesse caso, ambas as compilações podem acabar com o mesmo rótulo do iniciador, provavelmente causando alguma confusão. Era isso que eu estava tentando evitar.release
modo. E use apenas esse recurso de cadeia paraapp_name
, não para qualquer outra função.app_name
, mesmo que isso não seja necessário (por exemplo, você tem desenvolvedores franceses ou alemães que não falam inglês e, portanto, precisam traduzi-la). Para testar, verifique se arelease
versão não modificada doapp_name
trabalho, com suas traduções, testa arelease
compilação ou cria umnear-release
tipo de compilação que apenas adiciona o sufixo de ID do aplicativo e deixa as sequências em paz.Você pode usar algo como isto
Você pode usar @ string / app_name nos arquivos AndroidManifest.xml.
Certifique-se de remover app_name dos valores / pasta (nenhuma entrada com esse nome).
fonte
resValue "string", "app_name", System.getenv("APP_NAME") ?: "MyApp"
Você pode fazer isso com gradle:
Então no seu
AndroidManifest.xml
put:Nota: também funciona com
productFlavors
.fonte
Para suportar traduções, faça o seguinte:
1. remova a string "app_name"
2. adicionar ao gradle
3. Defina o nome do aplicativo no manifesto como "@ string / app_name"
4. Adicione aos valores strings.xml
fonte
app_name
na seção do arquivo productFlavorsbuild.gradle
. Uma abordagem extremamente conveniente e flexível quando você precisar.O nome do aplicativo é visível ao usuário, e é por isso que o Google incentiva você a mantê-lo em seu arquivo strings.xml. Você pode definir um arquivo de recurso de sequência separado que contenha sequências específicas para seus buildTypes. Parece que você pode ter um
qa
buildType personalizado . Se isso não for verdade, ignore a parte qa abaixo.fonte
Precisamos de uma solução para oferecer suporte ao nome do aplicativo com localização (para vários idiomas). Eu testei com a solução @Nick Unuchek, mas a construção falhou (não foi encontrado @ string /). uma pequena mudança para corrigir esse erro: arquivo build.gradle:
values \ strings.xml:
values-en \ strings.xml:
Manifest.xml:
fonte
tools:replace="android:label"
emapplication
emAndroidManifest
Para uma solução baseada em gradle mais dinâmica (por exemplo, defina o nome do aplicativo base em main's
strings.xml
uma vez e evite repetir-se em cada combinação de tipo de sabor / compilaçãostrings.xml
), consulte minha resposta aqui: https://stackoverflow.com/a/32220436/1128600fonte
Você pode usar
strings.xml
em pastas diferentes. Consulte Valores de sequência separados do Android para versões de lançamento e depuração .Então, crie este arquivo:
Em seguida, cole-o em
app\src\debug\res\values\
eapp\src\release\res\values\
pastas. Substitua "O nome do seu aplicativo" nos arquivos de depuração e lançamento. Removerapp_name
itemstrings.xml
naapp\src\main\res\values\
pasta.Em
AndroidManifest
você terá o mesmoNenhuma alteração. Mesmo se você adicionou uma biblioteca ao seu
AndroidManifest
arquivo estrings.xml
.fonte
Como o autor pede para fazer isso em Gradle , podemos assumir que ele deseja fazê-lo no script e não nos arquivos de configuração. Como o Android Studio e o Gradle foram fortemente atualizados e modificados no ano passado (~ 2018), todas as outras respostas acima parecem excessivamente distorcidas. A maneira mais fácil, é adicionar o seguinte ao seu
app/build.gradle
:fonte