为了保证每一个应用程序开发商合法ID,防止部分开放商可能经过使用相同的Package Name来混淆替换已经安装的程序,咱们须要对咱们发布的APK文件进行惟一签名,保证咱们每次发布的版本的一致性(如自动更新不会由于版本不一致而没法安装)。android
在这里介绍两种签名的方法以下:算法
一、在命令行对apk签名:后端
建立key,须要用到keytool.exe (位于C:\Program Files\Java\jdk1.6.0_10\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于C:\Program Files\Java\jdk1.6.0_10\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入加密
C:\Documents and Settings\mzba>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore命令行
相关说明:debug
-genkey 产生密钥设计
-alias demo.keystore 别名 demo.keystore开发
-keyalg RSA 使用RSA算法对签名加密get
-validity 40000 有效期限4000天
-keystore demo.keystore
C:\Documents and Settings\mzba>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采用上述步骤签名。