App 初始化操作!
签名配置
虽然APP离真正发布还很远,按我个人习惯还是把APP必须的东西但基本不会怎么变动的先配置了。
AS上建立签名文件太Easy: 工具栏Build > Generate Sign Apk > create new
,然后填写签名相关信息即可。具体也可参考官网说明。
1.创建完后打开Project Structure
(windows快捷键ctrl+alt+shift+s),切换到app并填写填写签名信息如下图,, 填写完确定将签名信息写入到app/build.grade
中:
2.配置签名后再看看我们的app/build.grade
会发现多签名信息:
1 2 3 4 5 6 7 8 9 10 11 12 |
signingConfigs { release { keyAlias 'huchiwei' keyPassword 'password123' storeFile file('E:/我的坚果云/Android开发/签名文件/android.hucw.signkey.jks') storePassword 'password123' } } ... release { signingConfig signingConfigs.release } |
assembleRelease
任务,如果正常的话,在app的build/outputs/apk能够见到已经签名的app-release.apk
。
2.多渠道打包:
(1).
同样地,我也到友盟申请个App统计应用,按照SDK文档配置下。
manifest.xml
1 2 3 |
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
|
在app的build.gradle设置produceFlavors
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 友盟多渠道打包 productFlavors { wandoujia {} _360 {} baidu {} xiaomi {} tencent {} taobao {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } |
然后格式化名称输出apk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) } android { defaultConfig { // dex突破65535的限制 multiDexEnabled true // 默认是umeng的渠道 manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"] } buildTypes { release { applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为gankessence_v1.0_2015-01-15_wandoujia.apk def fileName = "gankessence_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } } } |
最后再一次执行assembleRelease
,如果正常的话应该可以看到如下结果