Android打包系列——多渠道打包及签名
来源:互联网 发布:淘宝领卷app 编辑:程序博客网 时间:2024/05/22 01:56
Android打包系列——多渠道打包及签名
0x00 概述
上篇文章梳理了下打包流程,本文从实践的角度教你怎么打包?
0x01 Gradle配置
Android应用的编译和构建是基于Gradle,我们只需要在主Module的build.gradle中进行一些配置即可。
如下是楼主的配置文件,每个参数都进行了很详细的说明。
这里梳理出来,也是便于自己知识管理。
这里有几点说明:
- 公共的常量放在
gradle.properties
文件,然后在build.gradle
中直接引用即可,这样便于集中管理。 - 需要进行签名,只有签名后的包才能安装在设备上。Debug包默认使用了debug签名,自动生成;release包使用release签名,需要开发者自己生成。
productFlavors
设置渠道号,可以实现多渠道打包,通过修改applicationId
可以让同个app的不同构建包同时安装在一台设备上。
gradle.properties
文件中常量配置如下:
0x02 证书签名
1. 为什么要签名?
前面已经提到,任何一个安装包都需要有签名。为App签名的本质是说明这个App是我开发的,不是别人。通过签名可以在应用和开发者之间建立可信任的关联。
通过签名,Android系统可以保证如下:
- 拿到一个应用的安装包,能够知道作者是谁
- 当应用更新时,能够检测是不是作者本人提交的
- 应用中的部分文件遭到修改时,能够检测到是否为作者本人做出的修改
因此如果签名发生变化,是没办法升级安装的。
2. debug证书&release证书
从上面的配置文件,我们知道Android签名需要配置4个参数:
- key alias key别名
- key password key密码
- keystore file 密钥文件
- keystore password 密钥密码
通过Run按钮或命令行生成debug包时,Gradle会自动使用debug证书进行签名。debug证书的keystore默认存储在$HOME/.android/debug.keystore
目录下。这个debug证书是首次运行应用程序时产生的。
由于debug证书安全性较差,正常情况下渠道包都需要使用release签名。
通常一个公司或部门使用同一个证书。
3. 如何生成一个证书?
有2种方式来生成数字证书:
(1)图形界面方式
打开Android Studio,点击Build -> Generate Signed APK -> Create new…,弹出New Key Store窗口。
如上图所示,输入相关信息,然后点击OK即可生成数字证书。
(2)命令行方式
各个参数含义:
- -keystore keystore
- -alias key别名
- -keyalg 加密方式,RSA加密
- -keysize key大小
- -validity 证书有效期
具体执行结果如下:
0x03 多渠道打包
我们可以使用图形界面方式进行多渠道打包。不过这里就只介绍使用gradle
命令行打包方式。
那么到底怎么使用的呢?
我们执行gradle tasks
命令,可以得到如下task:
这些task的含义如下:
gradle assemble
产生所有渠道的Debug和Release包gradle assembleAndroidTest
产生所有渠道的测试包gradle assembleDebug
产生所有渠道的Debug包gradle assembleRelease
产生所有渠道的Release包gradle assembleAnzhi
产生某个渠道(如anzhi)的Debug和Release包
这里并没有出现stormzhang
的文章中说的形如gradle assembleWandoujiaRelease
的写法。
执行gradle assemble
后,在app/build/outputs/apk下面会生成一堆文件,如下图所示:
- Android打包系列——多渠道打包及签名
- Android打包系列——多渠道打包及签名
- android签名打包、签名混淆、多渠道打包
- Android Studio多渠道签名打包
- android 签名混淆-多渠道打包
- android签名和多渠道打包
- Android 签名混淆-多渠道打包
- android studio 签名,打包,混淆,多渠道打包
- Android APK签名及友盟多渠道打包
- Android多渠道打包汇总(一)—— 什么是签名打包
- Android多渠道打包汇总(二)—— 使用AS进行签名打包
- sttdio多渠道打包签名
- Android Studio 多渠道打包并签名
- Android 生成签名apk与多渠道打包
- Android apk 签名和多渠道打包
- Android多渠道打包(七):系列总结及展望
- Android Studio 打包、生成jks密钥、签名Apk、多渠道打包
- Android Studio 打包、生成jks密钥、签名Apk、多渠道打包
- java 中的 equals 和 ==
- 杭电1160 排序+LIS+记录
- RecyclerView使用完全指南,是时候体验新控件了(一)
- 装饰模式
- iOS核心动画高级理解
- Android打包系列——多渠道打包及签名
- 封装Ajax请求,callback函数参数分析
- 添加jar包编译出现错误"XXX cannot be resolved or is not a field"解决方法
- java初学者之运算符运用
- 【APIO2008T2】免费道路-并查集+生成树
- C# 图像处理(一)(图像缩放、屏幕截取、图像合并、保存图像)
- Java反射实践
- Android Studio 2.0 出现UnsupportedClassVersionError Unsupported major.minor version 52.0
- 自己整理的SQL数据类型