Android要求所有的app在安装之前,都要安装数字证书。Android利用数字证书去确定app的作者,该证书不需要证书办法机构签署。Android app经常使用自签名证书。App开发者持有证书的private key。
你可以签名以debug mode或者release mode两种方式签名一个app。你可以在debug模式下开发,在release模式下发布。在debug mode下Android SDK生成了签名证书。在release mode下签名一个apk,你需要生成自己的证书。
在debug模式下,签名apk使用的证书是由Android SDK tools生成的。该证书带有一个已知密码的private key(私匙),以至于你可以每次run 和debug应用程序的时候,不需要输入密码。
当你在run or debug 你的项目的时候,Android studio 在debug模式在会自动签名你的app。
在debugmode下,你可以在虚拟机或者设备上运行,debug应用,但是不可以发布它。
默认的,the debug mode 的配置使用一个拥有已知的密码和一个已知的默认default key的debug keystore(密匙库)。这个debug keystore 位于$HOME/.android/debug.keystore,如果该文件不存在,则在编译过程中会自动创建。这个debugbuild type被debugSigningConfig
自动配置。
在release mode中,签名app应该使用你自己的证书。
1. create a keystore。A keystore 是包含private key一个二进制文件,你应该把这个文件放在可靠安全的地方。
2. create a private key。private key 代表着等同于app的一个实体。例如一个人或者一个公司。
3. 为app module 模块增加签名配置。
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
5. 执行assembleRelease 编译任务。
生成的签名apk 在app/build/apk/app-release.apk
作者有话说:如果您需要Android中文API,请扫一扫下面的二维码,做技术,我们认真的。