APK签名的实现

APK签名的意义

APK签名是为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)

当我们进行打包APK时就可以使用我们自己的数字证书了,一般公司都有自己的APK签名文件。当我们打包时直接可以使用只要将我们打包时的签名指向该签名文件即可,并添加上提供的密码即可。

APK签名的实现:

第一步生成数字证书

第二步使用数字证书进行APK的签名

第一种实现方式:

Eclipse下通过插件获取数字证书,并签名你的应用。

打开Eclipse->选择你要签名的项目->右击->android tools->Export signed Application package,再进行相关操作。这里首先需要创建数字证书,然后再利用数字证书签名你的应用

第二种实现方式:

KeyTool产生数字证书文件,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的keyapk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下)把上两个软件所在的目录添加到环境变量path,打开cmd输入

?

D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore

/*说明:-genkey产生密钥

       -alias demo.keystore 别名 demo.keystore

       -keyalg RSA 使用RSA算法对签名加密

       -validity 40000 有效期限4000

       -keystore demo.keystore */

D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore

/*说明:-verbose输出签名的详细信息

       -keystore  demo.keystore 密钥库位置

       -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/

  注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。


app更新后提示应用未成功安装:一般是签名不一致造成的


报错

Android Export aborted becausefatal error解决:打开项目属性-Android LintPreferences-点击右侧的 Configure Workspace Settings...-Run full error check when exporting app and abord if fatal errors are found. 选项去掉勾选-Apply-ok

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值