使用 Gradle 为 Android 个应用程序生成自定义包名称
Generate custom package names for Android apps with Gradle
假设我想要四个程序包名称为 com.demo_uat、com.demo_prod、com.demo1_prod 和 com.demo1_uat。
为此,我使用了 Gradle 和 buildTypes/productFlavors 机制。
我尝试执行以下操作:
buildTypes {
uat.initWith(buildTypes.debug)
uat {
applicationIdSuffix "_uat"
}
prod.initWith(buildTypes.release)
prod {
applicationIdSuffix "_prod"
}
}
productFlavors {
demo {
applicationId "com.demo"
}
demo1 {
applicationId "com.demo1"
}
}
但默认情况下,Gradle 会添加一个额外的“.”。在 _uat 和 _prod 的开头,它将产生以下输出:com_demo._uat, com_demo._prod、com_demo1._uat 和 com.demo1._prod。
是否可以覆盖此行为?我想保留下划线。
我终于找到了解决方法。
这是我所做的:
android {
...
buildTypes {
prod.initWith(buildTypes.release)
prod {
}
uat.initWith(buildTypes.debug)
uat {
}
}
productFlavors {
demo {
applicationId "com.demo"
}
demo1 {
applicationId "com.demo1"
}
}
}
task editApplicationId {
android.applicationVariants.all { variant ->
variant.mergedFlavor.applicationId = variant.mergedFlavor.applicationId + "_" + variant.buildType.name
}
}
assemble.dependsOn(editApplicationId)
假设我想要四个程序包名称为 com.demo_uat、com.demo_prod、com.demo1_prod 和 com.demo1_uat。 为此,我使用了 Gradle 和 buildTypes/productFlavors 机制。
我尝试执行以下操作:
buildTypes {
uat.initWith(buildTypes.debug)
uat {
applicationIdSuffix "_uat"
}
prod.initWith(buildTypes.release)
prod {
applicationIdSuffix "_prod"
}
}
productFlavors {
demo {
applicationId "com.demo"
}
demo1 {
applicationId "com.demo1"
}
}
但默认情况下,Gradle 会添加一个额外的“.”。在 _uat 和 _prod 的开头,它将产生以下输出:com_demo._uat, com_demo._prod、com_demo1._uat 和 com.demo1._prod。
是否可以覆盖此行为?我想保留下划线。
我终于找到了解决方法。 这是我所做的:
android {
...
buildTypes {
prod.initWith(buildTypes.release)
prod {
}
uat.initWith(buildTypes.debug)
uat {
}
}
productFlavors {
demo {
applicationId "com.demo"
}
demo1 {
applicationId "com.demo1"
}
}
}
task editApplicationId {
android.applicationVariants.all { variant ->
variant.mergedFlavor.applicationId = variant.mergedFlavor.applicationId + "_" + variant.buildType.name
}
}
assemble.dependsOn(editApplicationId)