首页 > 代码库 > Android.PublishApplication
Android.PublishApplication
发布应用
3. 为App签名
Android 要求App在安装前,需要使用证书(certificate)来进行数字签名(be digitally signed).
Android 用证书来标识一个App的作者或者开发商。该证书不需要由证书管理机构(certificate authority)来签发。
Android app 经常使用自签发的证书(self-signed certificate)。App开发者来保存证书的私钥。
3.1 在debug模式下签名
不能发布一个在debug模式下签名的app。Android Studio 和 ADT plugin for Eclipse在debug模式下
自动为你的app进行签名。
3.2 在release模式下签名
在release模式下,用自己的证书为自己的app签名,步骤:
1 创建keystore。keystore是一个包含了一组私钥的二进制文件。keystore必须保存
在安全可靠的地方。
2 创建私钥。私钥代表随app被标识的实体,实体可以是人或者公司。
3 构建project。为app生成一个未签名的apk。
4 签名app。用你的私钥来生成apk的签名版本。
在完成这个过程后,可以发布你的app。
keystore和private key需要放在安全可靠的地方,并且有可靠的备份。
如果发布app到Google Play,然后丢失了用来签名app的private key,那么就无法对该app进行更新。
因此必须用同一个key来对所有的版本进行签名。
3.3 在Android Studio中进行签名 (略)
3.4 在ADT中进行签名 (略)
3.5 签名的考虑因素
3.6 保证私钥的安全
3.7 debug证书的过期
3.8 手动对app进行签名
可以使用Android SDK 和 JDK的工具在命令行为app进行签名。
1.用keytool创建私钥
$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
10000天有效期,生成一个keystore:my-release-key.keystore。 该keystore包含一个key,alias_name是key的名字。
2.在release模式下编译app来获得一个未签名的apk。
3.用jarsigner和私钥来对app进行签名:
$ jarsigner -verbose -sigalg SHAwithRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
可以用不同的key来对apk进行多次签名。
4. 确认apk已被签名:
$ jarsigner -verify -verbose -certs my_application.apk
5. 用zipalign对齐apk包
$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
Android.PublishApplication