Android Studio 다 중 채널 패키지 설정 방법
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
위의 value 값 ChannelID 는 채널 표지 입 니 다.우리 가 기대 하 는 것 은 컴 파일 할 때 이 값 이 자동 으로 변화 하여 다 중 채널 을 구분 하 는 수 요 를 만족 시 킬 수 있다 는 것 이다.(1)AndroidManifest.xml 에 동적 채널 변 수 를 설정 합 니 다.
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
(2)build.gradle 에 produtFlavors 설정여기 서 우리 가 포장 해 야 할 경 로 는 360,좁쌀,바 이 두,완두콩 꼬투리 라 고 가정 한다.
android {
productFlavors {
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
qh360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"]
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
}
}
일괄 수정
android {
productFlavors {
xiaomi {}
qh360 {}
baidu {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
ProductFlavors 란 정의 가능 한 제품 특성 입 니 다.manifest merger 와 함께 사용 할 때 한 번 의 컴 파일 과정 에서 여러 개의 특성 설정 을 가 진 버 전 을 만 들 수 있 습 니 다.위의 이 설정 의 역할 은 모든 채널 에 서로 다른 UMENG 를 만 드 는 것 입 니 다.CHANNEL_VALUE 의 값.(3)포장 작업 수행
AndroidStudio 메뉴 표시 줄 에서 Build 메뉴 C>Generate signed APK>key 를 클릭 하고 비밀 번 호 를 입력 하 십시오.
그리고 다음 단 계 는 포장 경 로 를 선택 합 니 다.
마지막 으로 완성 단 추 를 누 르 면 우 리 는 다섯 개의 채널 을 성공 적 으로 잘 싸 웠 다.
(4)포장 명령 을 실행 합 니 다./gradlew assembleRelease
AndroidStudio 그래 픽 포장 작업 을 사용 하 는 것 외 에 도 명령 행 을 사용 하여 포장 작업 을 할 수 있 습 니 다.구체 적 인 절 차 는 다음 과 같 습 니 다.
signingConfigs {
release{
storeFile file("../wooyun_keystore") //
storePassword "your password"
keyAlias "your alias"
keyPassword "your password" //
}
}
그리고 gradlew assemble Release 명령 을 다시 실행 합 니 다.이번에 생 성 된 것 은 서명 이 들 어 있 는 채널 패키지 입 니 다.
우리 의 채널 패키지 버 전이 비교적 많 을 때,APK 패키지 이름 을 사용자 정의 하여 구분 할 수 있 습 니 다.
// , APK 1.0
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk frank_v1.0_wandoujia.apk
def fileName = "frank_v${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
assemble 는 Gradle 의 컴 파일 패키지 명령 입 니 다.다음 과 같은 용법 이 있 습 니 다.만약 우리 가 wandoujia 채널 의 release 버 전 을 포장 하고 싶다 면 다음 명령 을 실행 하면 됩 니 다.
gradlew assembleWandoujiaRelease
만약 우리 가 wandoujia 채널 의 debug 버 전 을 포장 하고 싶다 면 다음 명령 을 실행 하면 됩 니 다.gradlew assembleWandoujiaDebug
만약 우리 가 wandoujia 채널 버 전 만 친다 면:gradlew assembleWandoujia
이 명령 은 wandoujia 채널 의 Release 와 Debug 버 전 을 생 성 합 니 다.마찬가지 로 나 는 모든 릴 리 스 버 전 을 치고 싶다.
gradlew assembleRelease
이 명령 은 Product Flavor 의 모든 채널 의 Release 버 전 을 출력 합 니 다.다음은 제 개인
build.gradle
프로필 입 니 다.참고 로 공유 하 겠 습 니 다.
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.frank.example"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
//
signingConfigs {
debugConfig {
storeFile file("../frank_keystore") //
storePassword "your password"
keyAlias "your alias"
keyPassword "your password" //
}
release{
storeFile file("../wooyun_keystore") //
storePassword "your password"
keyAlias "your alias"
keyPassword "your password" //
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk frank_v1.0_wandoujia.apk
def fileName = "frank_v${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
productFlavors {
xiaomi {}
qh360 {}
baidu {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
}
총결산이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.