apk签名有几种方式:
1.源码编译签名
源码下编译的apk,系统会默认签名.
2.命令行签名
1>添加权限
很多应用会需要提升系统用户组权限,所以要在AndroidManifest.xml文件下添加
android:sharedUserId="android.uid.system" 。
2>在Eclipse中导出无签名的应用文件
在工程中:右键->Android Tools -> Export Unsigned Application Package导出应用
3>找出系统签名密钥
系统密钥为: platform.pk8和platform.x509.pem
路径: build\target\product\security
4>找出系统签名工具
工具为:signApk.jar
路径:/out/host/linux-x86/framework/ signApk.jar
5>开始签名
将第2、3、4步找到的无签名应用、platform.pk8、platform.x509.pem和signApk.jar放到同一文件夹下如F:\sign。
打开 dos 操作界面,定们到F:\sign,输入命令:
java -jar signapk.jar platform.x509.pem platform.pk8 **.apk ***.apk
(**.apk 为未签名应用 ***.apk 为签名之后应用)
笔者实际中做的一般都是系统级应用开发,一般都用这种签名,比较方便,推荐下
3.eclipse签名
eclipse run应用调试时,在/bin/*.apk下生成eclipse默认签名的apk,使用的签名密钥位于
C:\Documents and Settings\Administrator\.android\debug.keystore.
普通应用可以安装到设备中,但如果应用要获取系统用户组时,加上了 android:sharedUserId="android.uid.system",
则此种签名的应用则无效。会提示
在后面第3篇文章里有此问题的一种解决方法
android签名机制(3)——如何制作签名
注:测试时可用此种方式直接run应用调试,但是发布时切忌不可用eclipse的默认签名run出的bin/*.apk,原因:
1)eclipse的默认debug签名有效期只有1年,并且不能再android market中上架。
2)debug.keystore在不同的机器上所生成的可能都不一样,当如果此debug.keysotre由于特殊原因丢失,那之前发的应用都无法更新、替换,是非常严重的问题
原作者:http://my.oschina.net/blackylin/blog/176852