Android Gradle 多渠道打包
2017-08-23 本文已影响0人
ChanZeeBm
多渠道打包:
First step:
在build.gradle配置文件中添加flavor:
android{
productFlavors {
//RX
polaris {
}
//R9
gemini {
}
}
}
至此我们添加了两个flavors:分别为polaris && gemini
First step done.
拿其中polaris作例子:
由于配置会默认src/polaris目录为polaris flavor的dataSet
所以如果我们需要在polaris这个apk里面作某些修改的话,就需要作以下步骤:
- 修改APP名字
新建项目的时候默认src/main/res/values/string.xml的app_name为Zen
首先在src里面依次新建:
polaris目录(跟main同级)/res/values/polaris.xml
在新建的polaris.xml里面新建
<string name="app_name">Polaris</string>
这里再展开说一下为什么最后新建的不是string.xml而是polaris.xml:
polaris包下不使用strings.xml 名是因为会出现文件重复,默认的main 文件夹里存在的文件在其他适配目录中不允许出现相同文件名的文件。
修改其他属性类同。
编辑gemini步骤也一样。
Second step:
利用gradlew(window为gradle)来generate apk:
./gradlew assembleRelease
./gradlew assembleDebug
其中release对应
buildTypes {
release {
//do sth
}
}
Debug对应
buildTypes {
debug {
//do sth
}
}
新建项目的时候debug是默认会有的,需要用到的时候才显示声明出来
以上你直接运行
./gradlew assembleDebug
的时候是直接可以生成两个debug包的,但是release的时候就需要签名了,需要先走以下步骤再运行
./gradlew assembleRelease
- 利用gradle自动签名
首先新建JKS(具体步骤百度)
然后新建signingConfigs:
android{
signingConfigs{
sign{
keyAlias "签名的alias"
keyPassword "alias的password"
storeFile file("jks的路径")
storePassword"jks的password"
}
}
}
然后在buildTypes的release里面引用:
buildTypes {
release {
signingConfig signingConfigs.sign
}
}
至此就完成了给release包自动签名,再次运行
./gradlew assembleRelease
后会打包出两个已经签名的apk。