반응형
Android Studio에서 실행에 빌드 변형을 가져 오는 방법은 무엇입니까?
작동 중에 빌드 변형을하고 싶습니다. 추가 구성이나 코드없이 가능합니까?
생성 된 BuildConfig
클래스를 사용.
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLCATION_ID = "com.example.app";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "";
}
또 다른 옵션은 각 빌드 변형에 대해 별도의 빌드 구성 변수를 만들고 다음과 같이 코드에서 사용하는 것입니다.
build.gradle 파일에서 :
productFlavors {
production {
buildConfigField "String", "BUILD_VARIANT", "\"prod\""
}
dev {
buildConfigField "String", "BUILD_VARIANT", "\"dev\""
}
}
코드에서 사용하는 비용 :
if (BuildConfig.BUILD_VARIANT.equals("prod")){ // do something cool }
시도 할 수 있습니다.
getPackageName();
build.gradle에서 정의한 내용을 반환합니다.
productFlavours{
flavour1{
applicationId 'com.example.package.flavour1'
}
flavour2{
applicationId 'com.example.package.flavour2'
}
}
다음은 BuildConfig
다른 맛 을 정의하고 얻는 예입니다.
android {
defaultConfig {
...
buildTypes {
...
}
flavorDimensions "default"
productFlavors {
develop {
applicationIdSuffix ".dev"
versionNameSuffix "-dev"
}
staging {
applicationIdSuffix ".stg"
versionNameSuffix "-stg"
}
production {
applicationIdSuffix ""
versionNameSuffix ""
}
}
applicationVariants.all { variant ->
def BASE_URL = ""
if (variant.getName().contains("develop")) {
BASE_URL = "https://localhost:8080.com/"
} else if (variant.getName().contains("staging")) {
BASE_URL = "https://stagingdomain.com/"
} else if (variant.getName().contains("production")) {
BASE_URL = "https://productdomain.com/"
}
variant.buildConfigField "String", "BASE_URL", "\"${BASE_URL}\""
}
}
사용
BuildConfig.BASE_URL
이미 맛을 내고 소유 할 수있는 gradle에 추가 할 수있는 추가 필드가 없습니다. 빌드 세부 정보를 얻으려면 간단한 단계를 수행하십시오.
빌드 변형 : BuildConfig.FLAVOR
빌드 버전 코드 : BuildConfig.VERSION_CODE
빌드 버전 이름 : BuildConfig.VERSION_NAME
반응형
'ProgramingTip' 카테고리의 다른 글
codeigniter의 활성 레코드 구문을 사용하여 mysql 데이터베이스의 증가 필드 (0) | 2020.12.11 |
---|---|
추적되지 않은 파일을 제거하도록 git에게 알립니다. (0) | 2020.12.11 |
ES6 배열 기본 변수 (0) | 2020.12.11 |
-fembed-bitcode는 iOS 6.0 이전 버전에서 지원되지 않습니다. (0) | 2020.12.11 |
힙 대신 스택을 사용하는 것이 가장 좋은 언제입니까? (0) | 2020.12.11 |