- 第一步 在AndroidManifest.xml里配置
-
<!-- ***********************************多渠道打包 开始************************************************** --> <meta-data android:name="CHANNEL_NAME" android:value="${CHANNEL_VALUE}" /> <!-- ***********************************多渠道打包 结束************************************************** -->
- 第二步 在build.gradle里配置编译渠道
-
//多渠道打包 productFlavors { wandoujia {} baidu {} qihu360 {} yingyongbao {} productFlavors.all { flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name] } }
- 第三步 在build.gradle里添加编译时间等基础配置key目录
-
signingConfigs { debug { // No debug config } release { storeFile file("../xxx.jks") storePassword "xxxxx" keyAlias "xxxxx" keyPassword "xxxx" } }
- 第四步 添加发布时间方法
-
def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) }
- 第五步 添加默认配置
- 在defaultConfig中加入
-
// dex突破65535的限制 multiDexEnabled true // 默认是baidu的渠道 manifestPlaceholders = [CHANNEL_VALUE: "baidu"]
- 第六步 添加编译时lint错误不会中断生成app的配置
-
lintOptions {//在build apk 时Android Lint产生的错误不会导致中断生成APK abortOnError false }
- 第七步 修改编译配置
-
buildTypes { debug { // 显示Log buildConfigField "boolean", "LOG_DEBUG", "true" versionNameSuffix "-debug" minifyEnabled false zipAlignEnabled false shrinkResources false signingConfig signingConfigs.debug } release { // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" minifyEnabled true zipAlignEnabled true // 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为appname_v1.0_2015-12-17_baidu.apk def fileName = "appname_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } }
- 多渠道配置完成
- 打包方法
- 可以直接在android studio里面用图形工具编译
- Build -> Generate signed apt -> 填写key信息->填完以后如下图所示 然后选择编译渠道可按住shift多选
- 第二种打包方法(左下角点击Terminal)
- 输入 ./gradlew assembleRelease就会开始编译了
- 如果提示bash: ./gradlew: Permission denied那么设置下权限就好了chmod +x gradlew