Gradle Cheat Sheet (18): Adding a Signing Configuration
给App签名需要三个步骤:首先需要创建一个Key Store和一个Key;然后在build.gradle中创建一个签名配置,主要用于描述如何访问keystore和key;最后要把这个签名配置指定给Build Type。
1. 创建Key Store和Key
选择Build > Generate Signed APK…,打开Generate Signed APK向导,首先需要选择要签名module,这里就选择app,如图1。然后点击next。
点击Create new…新建Key Store。Key store path选择当前工程目录,命名为keystore.jks,然后为Key Store设定Password,为Key设定Alias和Password,并填写Certificate下的内容,如图2。然后点击OK。
此时Key Store已经创建完毕,可以直接关闭Generate Signed APK向导。可以在工程根目录下找到keystore.jks文件。
2. 创建Signing Configuration
右键点击app目录,选择Open Module Settings,打开Signing页面,点击“+”按钮创建新Configuration,命名为defaultConfig,Store File选择上一步创建的keystore.jks,并填写剩余项目,如图3。
然后就可以在/app/build.gradle中找到对应的Configuration:
signingConfigs { defaultConfig { keyAlias 'mykeystore' keyPassword '12345678' storeFile file('/Users/nex3z/Workspace/MySignedApp/keystore.jks') storePassword '12345678' } }
注意这里storeFile 默认使用绝对路径,可以通过rootDir 来使用相对路径:
storeFile file("$rootDir/keystore.jks")
3. 添加Signing Configuration到Build Type
右键点击app目录,选择Open Module Settings,打开Build Types页面,在左侧选择release,点击Signing Config下拉菜单,选择上一步创建的defaultConfig,如图4。
点击OK后,就可以在/app/build.gradle中看到在release 下多出了signingConfig signingConfigs.defaultConfig :
release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.defaultConfig }
4. 确认签名成功
运行:
$ ./gradlew assemble
然后运行:
$ unzip -l app/build/outputs/apk/app-release.apk
签名包含在最后的两个文件中:
36776 06-17-16 22:33 META-INF/CERT.SF 1086 06-17-16 22:33 META-INF/CERT.RSA