2015-06-04 5 views
0

Скажем, я хотел бы иметь четверок приложения с названием пакета com.demo_uat, com.demo_prod, com.demo1_prod и com.demo1_uat. Для этого я использую механизм Gradle и buildTypes/productFlavors.Генерация имен пользовательских пакетов для Android приложений с Gradle

Я попробовал, выполнив следующие действия:

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.

Можно ли отменить это поведение? Я хотел бы сохранить знак подчеркивания.

ответ

0

Я, наконец, нашел обходное решение. Вот что я сделал:

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) 
Смежные вопросы