生成签名
通过Android Studio,开发者可以非常方便地生成应用的签名。当然,你也可以使用命令行的方式。这里不进行介绍,读者可以去Google一下。
在Android Studio的菜单栏中,选择Build标签,再选择Generate Signed APK选项,如图4.11所示。
图4.11 生成签名
选择默认的module,点击Next,在界面中选择“Create new…”,如图4.12所示。
图4.12 签名设置界面
在弹出的界面中,输入签名所需要的相关信息,如图4.13所示。
图4.13 签名信息
需要注意的是,通常会把签名文件的保存路径选择到主module的根目录下,这样引用起来比较方便。另外在Android Studio中,签名文件不再是.keystore文件,而是.jks文件。点击OK,系统会自动生成相应的签名文件,如图4.14所示。
图4.14 生成的签名文件
对于企业项目来说,这个key通常是存放在打包服务器上的,那么在gradle脚本中,就需要通过具体的路径来访问。这一点与访问各种配置文件的方式是一样的。
配置签名
生成了签名文件后,就可以在build.gradle脚本的android领域中配置签名的相关参数。
- signingConfigs {
- xys {
- storeFile file("xys_key.jks")
- storePassword "1234567"
- keyAlias "xys"
- keyPassword "1234567"
- }
- }
配置的信息就是前面在创建签名时填写的信息。需要注意的是,签名信息一定要包含在一个领域中,你可以给这个领域起一个名字,例如这里的“xys”(通常情况下,会使用debug、release这样的签名)。
使用签名
配置好相关的签名信息后,就可以在构建类型的时候加入签名的设置。这样生成的apk就会包含签名版和未签名版两种,完整的配置如下所示。
- signingConfigs {
- xys {
- storeFile file("xys_key.jks")
- storePassword "1234567"
- keyAlias "xys"
- keyPassword "1234567"
- }
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- xys {
- signingConfig signingConfigs.xys
- applicationIdSuffix ".xys"
- }
- }
在配置中,脚本设置了xys构建类型的签名,而没有给release构建类型设置签名。因此,在执行gradle build指令后,生成的apk如图4.15所示。
图4.15 签名后的apk
其中包含了debug构建类型(默认)和xys构建类型(自定义)的签名版和未签名版,再加上没有配置签名版的release构建类型。
