2017-12-13 8 views
1

두 가지 맛의 차원 인 스테이징 및 베타가 있습니다. 사과와 바나나 두 가지 맛이 있습니다. Apple과 Banana는 앱에서 사용하는 manifestHolder 값이 다릅니다.빌드 유형을 선택할 때 빌드 풍미를 어떻게 분리합니까?

내 변형은 빌드 변형을 선택하려고 할 때 두 가지 맛을 결합합니다. 나는 그들에게 다른 차원을 할당했습니다 비록

enter image description here

.

productFlavors { 
    apple { 
     dimension "staging" 
     applicationIdSuffix ".staging" 
     manifestPlaceholders = [onesignal_app_id    : "y", 
           // Project number pulled from dashboard, local value is ignored. 
           onesignal_google_project_number: "REMOTE"] 
    } 

    banana { 
     dimension "beta" 
     applicationIdSuffix ".beta" 
     manifestPlaceholders = [onesignal_app_id    : "x", 
           // Project number pulled from dashboard, local value is ignored. 
           onesignal_google_project_number: "REMOTE"] 
    } 
} 

답변

3

dimension 때문에이 둘을 결합합니다. 하나의 측정 기준 만 필요합니다.

그럼 두 buildTypes가 있다고 가정 해 봅시다 : 당신은 productFlavors을 위해 다음을 수행

다음
buildTypes { 
    debug { 
     debuggable true 
     signingConfig signingConfigs.config 
    } 

    release { 
     debuggable false 
     minifyEnabled false 

     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     signingConfig signingConfigs.config 
    } 
} 

:

appleDebug
appleRelease :

flavorDimensions "default" 

productFlavors { 
    apple { 
     dimension "default" 
     applicationIdSuffix ".staging" 
     manifestPlaceholders = [onesignal_app_id    : "y", 
           // Project number pulled from dashboard, local value is ignored. 
           onesignal_google_project_number: "REMOTE"] 
    } 

    banana { 
     dimension "default" 
     applicationIdSuffix ".beta" 
     manifestPlaceholders = [onesignal_app_id    : "x", 
           // Project number pulled from dashboard, local value is ignored. 
           onesignal_google_project_number: "REMOTE"] 
    } 
} 

이 4 개 최종 빌드 변종을 생성합니다

bananaRelease