对Android中的apk文件进行数字签名及版本更新时遇到apk签名问题
来源:互联网 发布:实用的软件项目 编辑:程序博客网 时间:2024/05/08 23:04
(一)apk文件签名的作用:
1. 发送者的身份认证。由于开发商可能通过使用相同的 Package Name 来混淆替换已经安装的程序,以此保证签名不同的包不被替换2. 保证信息传输的完整性。签名对于包中的每个文件进行处理,以此确保包中内容不被替换。
(二)步骤:
1. 安装配置好JDK 1.6
2. 使用Java的keytool工具生成密钥
C:\android.keystore就是生成的密钥和证书存储文件;-alias定义了密钥别名是android;-keyalg指定了密钥算法,用的是非对称RSA算法;-validity指定了证书的有效天数。在cmd中执行命令后,需要一步步输入提示的各种信息(如图)
至此密钥证书文件生成,可以在之前指定的目录里找到生成的keystore文件。然后就可以用它来对apk文件进行签名。这个证书文件要做好备份,另外也要记住自己设定的密码。因为一旦忘记密码或者证书丢失,就不得不用新的密钥进行签名;而使用新密钥签名的应用程序就失去了与旧版本应用程序的连续性,这会给产品的应用市场的发布和更新带来麻烦。
3. 将eclipse中的android应用程序的apk文件导出
右击eclipse中的android项目——>Android Tools——>Export Unsigned Application Package即可,将导出的apk文件放到与keystore文件同一文件夹里
4. 对apk文件进行签名
利用Java里的jarsigner工具来对apk进行签名。有一点值得注意,就是前面用到的keytool工具,JDK和JRE的bin目录下都有;而jarsigner工具只随着JDK发行。
5.验证签名是否成功
至此,apk签名成功。效果图:
参考资料:http://www.haowu.info/2013/01/01/sign-android-apk-files-in-command-line/
http://blog.csdn.net/aeolus1019/article/details/8121031
出现"已安装了存在签名冲突的同名数据包"的原因及解决办法
如果你在android上更新一个已经安装过较早版本软件时,安装到最后一步提示你:已安装了存在签名冲突的同名数据包,然后安装失败。这是因为旧版软件的签名信息与新版不一致造成的。你可以卸载这个软件,然后安装新版软件。
如果无法卸载,可能手机(pad)在发售前将该软件内置在手机中无法卸载。如果是这个原因的话,你可以尝试“root”系统,然后卸载掉该软件的旧版本,然后安装。
如果你是一个开发人员,那么出现这个问题可能是因为,较旧的版本你是使用eclipse自动发布到模拟器上的,而eclipse自动发布时使用的是一个测试用签名,这个签名与你正式打包的签名不是一个。(这个问题一般发生在测试自动更新功能上,嘿嘿)。想继续测试自动更新,解决的办法也很简单,手工删除该软件的旧版(eclipse自动安装的那个),然后使用adb工具安装旧版再测试新版就好。
- 对Android中的apk文件进行数字签名及版本更新时遇到apk签名问题
- Android 用signkey.jks签名文件对 Apk 进行签名
- 解决对android APK 项目进行签名过程中遇到的问题
- android studio 签名realse版本apk遇到的问题
- 对apk进行签名
- 关于APK版本更新的签名问题
- 如何对apk文件进行签名
- 如何对apk文件进行签名
- Android 对APK进行系统签名
- Android实践 -- 对apk进行系统签名
- 【Android】使用 Eclipse 给 APK 签名时遇到的两个问题及解决办法
- Android生成签名文件并用其对apk文件进行签名
- android apk批量签名时遇到的bat脚本问题
- 对APK进行重签名
- 如何对apk进行签名
- jarsigner对apk进行签名
- 对apk进行重新签名
- Android APK及签名
- spring mvc文件上传与下载
- 如何成为一个牛逼的C/C++程序员?
- IOS开发之——objectForKey与valueForKey在NSDictionary中的差异
- iOS 摇一摇的实现
- Android开发教程:监听EditText的变化
- 对Android中的apk文件进行数字签名及版本更新时遇到apk签名问题
- js操作url的代码
- 联通如何封杀多台电脑上网
- C/C++程序员必须熟练应用的开源项目
- Several shortcut keys in Visual Studio 2010
- 解决Lunix下的大内存分配运行失败问题---未解决
- linux cat 命令详解
- Mysql数据库编码小记
- WEB测试--的环境搭建和测试方法(摘抄的)