Я пытаюсь найти способ изменить имя приложения моего приложения для каждого типа сборки в gradle.
Например, я хотел бы иметь версию отладки и версию <APP_NAME>-debug
qa <APP-NAME>-QA
.
Я знаком с:
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
}
Однако я не могу найти команду gradle для применения изменения приложения, когда оно находится в панели запуска.
источник
release
строки.release
части», я вижу, что это немного по-другому, так как можно было бы также протестировать на наличие проблем с локализацией, позволяя «релизной» и «тестовой» сборкам сосуществовать на одном устройстве. В таком случае обе сборки могут иметь одинаковую метку запуска, что, вероятно, вызовет некоторую путаницу. Это то, чего я пытался избежать.release
режиме. И используйте этот строковый ресурсapp_name
только для других ролей.app_name
, даже если в этом нет необходимости (например, у вас есть французские или немецкие разработчики, которые не говорят по-английски и, следовательно, нуждаются в переводе). Чтобы проверить, работает ли немодифицированнаяrelease
версияapp_name
с ее переводами, протестируйтеrelease
сборку или создайтеnear-release
тип сборки, который просто добавляет суффикс идентификатора приложения и оставляет строки в покое.Вы можете использовать что-то вроде этого
Вы можете использовать @ string / app_name в файлах AndroidManifest.xml.
Убедитесь, что вы удалили app_name из values / folder (нет записи под этим именем).
источник
resValue "string", "app_name", System.getenv("APP_NAME") ?: "MyApp"
Вы можете сделать это с помощью gradle:
Затем в вашем
AndroidManifest.xml
вводе:Примечание: он также работает с
productFlavors
.источник
Для поддержки переводов сделайте это:
1. удалить строку "app_name"
2. добавить в Gradle
3. Установите имя приложения в манифесте как "@ string / app_name"
4. Добавьте в strings.xml значения
источник
app_name
в productFlavors частиbuild.gradle
файла. Чрезвычайно удобный и гибкий подход, когда вам это нужно.Название приложения видно пользователю, поэтому Google рекомендует вам сохранить его в файле strings.xml. Вы можете определить отдельный файл строкового ресурса, который содержит строки, специфичные для ваших типов сборки. Похоже, у вас может быть собственный
qa
buildType. Если это не так, проигнорируйте часть qa ниже.источник
Нам нужно решение для поддержки имени приложения с локализацией (для мультиязычности). Я тестировал решение @Nick Unuchek, но сборка не удалась (не найдено @ string /). небольшое изменение, чтобы исправить эту ошибку: файл build.gradle:
значения \ strings.xml:
Значения-ан \ strings.xml:
manifest.xml:
источник
tools:replace="android:label"
вapplication
вAndroidManifest
Для более динамичного решения на основе Gradle (например, установите базовое имя приложения в main
strings.xml
один раз и избегайте повторения в каждой комбинации типа / типа сборкиstrings.xml
), см. Мой ответ здесь: https://stackoverflow.com/a/32220436/1128600источник
Вы можете использовать
strings.xml
в разных папках, увидеть Android отдельные строковые значения для выпуска и отладки сборки .Итак, создайте этот файл:
Затем вставьте его
app\src\debug\res\values\
иapp\src\release\res\values\
папки. Замените «Имя вашего приложения» в файлах отладки и выпуска. Удалитьapp_name
элемент изstrings.xml
вapp\src\main\res\values\
папке.У
AndroidManifest
вас будет то же самоеНикаких изменений. Даже если вы добавили библиотеку с ее
AndroidManifest
файлом иstrings.xml
.источник
Поскольку автор просит сделать это в Gradle , мы можем предположить, что он хочет сделать это в сценарии, а не в файлах конфигурации. Поскольку и Android Studio, и Gradle были сильно обновлены и изменены в прошлом году (~ 2018), все остальные ответы выше кажутся чрезмерно искаженными. Самый простой способ - добавить в ваш
app/build.gradle
:источник