[*]com.xyz.myproject,
< li>com.xyz.myproject> comprong> zstrong>.myproject Один новый BuildType постановка , и мы по умолчанию по умолчанию два BuildTypes, т. Е. Debug и Release .
Код: Выделить всё
buildTypes {
debug{
//this build uses firebase project which is different from production
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
create("staging"){
//This build will uses production firebase project
signingConfig signingConfigs.debug
debuggable true
}
}
< /code>
Я использовал плагин Google Services, который позволяет мне иметь различный файл JSON (а именно Google-services.json) для каждого проекта Firebase и BuildType, но я должен вручную изменить ApplicationId < /emf> для успешного создания проекта.
Я хочу автоматизировать эту вещь! AGP или Google Service Plugin или сама Gradle выберите ApplicationId на основе типа сборки. Я пробовал большинство решений из Stackoverflow и Интернета, и все же все напрасны. < /P>
android {
compileSdk 35
defaultConfig{
//for debug app, I change application id to com.xyZ.myproject
//for staging/release app, I change application id to com.xyz.myproject
applicationId "com.xyz.myprjoect"
...
}
..
//removed for brevity
}
< /code>
Попробуйте 1:
Как динамически изменить ApplicationId
Поскольку я не хочу суффикс, это не сработало. < /p>
debug {
applicationIdSuffix '.xyZ.myproject'
}
staging{
applicationIdSuffix '.xyz.myproject'
}
< /code>
try 2: Настройка ApplicationId для каждого варианта сборки < /p>
androidComponents.onVariants {
// Remove the . between the base applicationId and the applicationIdSuffix that is being automatically added by gradle
// so we can have this => com.mycompany.mainappname_fullversion instead of this => com.mycompany.mainappname._fullversion
it.applicationId.set(it.applicationId.get().replace("mainappname.", "mainappname"))
}
< /code>
onvariant Не найдена ошибка. < /p>
try 3: Использование локальных свойств и настройки с использованием кода:
сначала получить локальные свойства projects.findproperty ("some_property") < /p>
applicationVariants.each{ variant ->
if(variant.name.contains("debug")){
appId = "com.xyZ.myproject"
else
appId = "com.xyz.myproject"
< /code>
и, конечно же, Chatgpt < /p>
buildTypes {
debug {
applicationId = "com.example.debug"
isMinifyEnabled = false
}
staging {
applicationId = "com.example.staging"
isMinifyEnabled = false
}
release {
applicationId = "com.example.production"
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... e-build-ty
Мобильная версия