项目地址
https://github.com/mcxiaoke/gradle-packer-plugin
项目介绍
gradle-packer-plugin 是Android多渠道打包工具Gradle插件,可方便的于自动化构建系统集成,通过很少的配置可实现如下功能 :
- 支持自动替换AndroidManifest文件中的meta-data字段实现多渠道打包
- 支持自定义多渠道打包输出的存放目录和最终APK文件名
- 支持自动修改versionName中的build版本号,实现版本号自动增长
gradle-packer-plugin 库路径: com.mcxiaoke.gradle:packer:1.0.+
简短名:packer
,可以在项目的 build.gradle
中指定使用
使用方法
修改项目根目录的 build.gradle
:
buildscript {
repositories {
mavenCentral()
}
dependencies{
classpath 'com.mcxiaoke.gradle:packer:1.0.+'
}
}
修改Android项目的 build.gradle
:
apply plugin: 'packer'
多渠道打包
需要在命令行指定 -Pmarket=yourMarketFileName属性,market是你的渠道名列表文件名,market文件是基于项目根目录的 相对路径
,假设你的项目位于~/github/myapp
你的market文件位于 ~/github/myapp/config/markets.txt
那么参数应该是 -Pmarket=config/markets.txt
,一般建议直接放在项目根目录,如果market文件参数错误或者文件不存在会抛出异常
渠道名列表文件是纯文本文件,每行一个渠道号,列表解析的时候会自动忽略空白行,但是格式不规范会报错,渠道名和注释之间用 #
号分割开,行示例:
Google_Play#play store market
Gradle_Test#test
SomeMarket#some market
渠道打包的命令行参数格式示例(在项目根目录执行):
./gradlew -Pmarket=markets.txt clean archiveApkRelease
Windows系统
- 如果你是在windows系统下使用,需要下载 Gradle,设置 GRADLE_HOME 环境变量,并且将Gradle的 bin 目录添加到环境变量PATH,然后将命令行中的
./gradlew
替换为gradle.bat
- 如果同时还需要使用gradlew,你需要给你的项目配置使用gradle wrapper,在设置好了gradle之后,在你的项目根目录命令行输入
gradle.bat wrapper
然后就可以使用gradlew.bat
了 - Windows系统下的命令行参考:
- 使用gradle:
gradle.bat clean assembleRelease
- 使用gradle wrapper:
gradlew.bat clean assembleRelease
- 使用gradle:
文件名格式
可以使用 archiveNameFormat
自定义渠道打包输出的APK文件名格式,默认格式是
${appPkg}-${flavorName}-${buildType}-v${versionName}-${versionCode}
举例:假如你的App包名是 com.your.company
,渠道名是 Google_Play
,buildType
是 release
,versionName
是 2.1.15
,versionCode
是 200115
,那么生成的APK的文件名是
com.your.company-Google_Player-release-2.1.15-20015.apk