Created
July 26, 2015 04:29
-
-
Save liwayping/34a6b824016f6a550710 to your computer and use it in GitHub Desktop.
Gradle多渠道打包
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apply plugin: 'com.android.application' | |
| def releaseTime() { | |
| return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) | |
| } | |
| android { | |
| compileSdkVersion 21 | |
| buildToolsVersion '21.1.2' | |
| defaultConfig { | |
| applicationId "com.boohee.*" | |
| minSdkVersion 14 | |
| targetSdkVersion 21 | |
| versionCode 1 | |
| versionName "1.0" | |
| // dex突破65535的限制 | |
| multiDexEnabled true | |
| // 默认是umeng的渠道 | |
| manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"] | |
| } | |
| lintOptions { | |
| abortOnError false | |
| } | |
| signingConfigs { | |
| debug { | |
| // No debug config | |
| } | |
| release { | |
| storeFile file("../yourapp.keystore") | |
| storePassword "your password" | |
| keyAlias "your alias" | |
| keyPassword "your password" | |
| } | |
| } | |
| 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名称为boohee_v1.0_2015-01-15_wandoujia.apk | |
| def fileName = "boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" | |
| output.outputFile = new File(outputFile.parent, fileName) | |
| } | |
| } | |
| } | |
| } | |
| } | |
| // 友盟多渠道打包 | |
| productFlavors { | |
| wandoujia {} | |
| _360 {} | |
| baidu {} | |
| xiaomi {} | |
| tencent {} | |
| taobao {} | |
| ... | |
| } | |
| productFlavors.all { flavor -> | |
| flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] | |
| } | |
| } | |
| dependencies { | |
| compile fileTree(dir: 'libs', include: ['*.jar']) | |
| compile 'com.android.support:support-v4:21.0.3' | |
| compile 'com.jakewharton:butterknife:6.0.0' | |
| ... | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 下面一些常用命令也就容易理解了。 | |
| ./gradlew -v 版本号 | |
| ./gradlew clean 清除9GAG/app目录下的build文件夹 | |
| ./gradlew build 检查依赖并编译打包 | |
| 这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令 **assemble**, 如 | |
| ./gradlew assembleDebug 编译并打Debug包 | |
| ./gradlew assembleRelease 编译并打Release的包 | |
| 除此之外,assemble还可以和productFlavors结合使用,具体在下一篇多渠道打包进一步解释。 | |
| ./gradlew installRelease Release模式打包并安装 | |
| ./gradlew uninstallRelease 卸载Release模式包 | |
| assemble 还能和 Product Flavor 结合创建新的任务,其实 assemble 是和 Build Variants 一起结合使用的,而 Build Variants = Build Type + Product Flavor , 举个例子大家就明白了: | |
| 如果我们想打包wandoujia渠道的release版本,执行如下命令就好了: | |
| ./gradlew assembleWandoujiaRelease | |
| 如果我们只打wandoujia渠道版本,则: | |
| ./gradlew assembleWandoujia | |
| 此命令会生成wandoujia渠道的Release和Debug版本 | |
| 同理我想打全部Release版本: | |
| ./gradlew assembleRelease | |
| 这条命令会把Product Flavor下的所有渠道的Release版本都打出来。 | |
| 总之,assemble 命令创建task有如下用法: | |
| **assemble**: 允许直接构建一个Variant版本,例如assembleFlavor1Debug。 | |
| **assemble**: 允许构建指定Build Type的所有APK,例如assembleDebug将会构建Flavor1Debug和Flavor2Debug两个Variant版本。 | |
| **assemble**: 允许构建指定flavor的所有APK,例如assembleFlavor1将会构建Flavor1Debug和Flavor1Release两个Variant版本。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment