开发工具:hbuilder > 云打包
打包上线的时候需要有json文件的配置,此处不赘述。本文主要记录新版本打包上线更新。很多开发者在第一版本打包时不进行签名私有证书等设置,但在后期版本更新时会用到,比如百度移动应用开发平台就需要签名。这是常见的坑,慢慢填。
签名的生成
-
安装Java的JDK:
-
使用keytool生成签名:
- 生成keystore文件:
- 在Windows下,按
Win+R
,输入cmd
,回车。 - 输入:
cd C:\Program Files\Java\jdk1.7.0\bin
,回车(进入keytool所在目录)。 - 输入:
keytool -genkey -alias abc.keystore
(abc.keystore
中的abc
可以自定义,区分大小写,这是你的签名证书文件)。 - 根据提示输入密钥(一般建议20位数字,务必记住),输完后直接按回车。
- 根据提示输完信息,最后会有信息确认,输入
Y
,回车。 - 这时在keytool所在目录会生成一个
abc.keystore
文件。
- 在Windows下,按
- 生成keystore文件:
接下来就可以给我们的应用apk文件进行签名了。
给apk文件添加签名(用jarsigner签名apk)
- 将需要添加签名的apk放到
C:\Program Files\Java\jdk1.7.0\bin
下,如:myapp.apk
。 - 按
Win+R
,输入cmd
,输入cd /d C:\Program Files\Java\jdk1.7.0\bin
,回车。 - 输入:
jarsigner -verbose -keystore abc.keystore -signedjar myappx.apk myapp.apk abc.keystore
,回车(myappx.apk
是签名后的apk)。 - 输入之前记住的密钥,apk签名成功。
引用网络上的操作方法:
默认生成的APK文件是debug签名的,如果要发布到Android Market,那么需要另外用keytool和jarsigner来给你的APK签名(主要是设定时间和所有者)。
按照常见步骤:
keytool -genkey -v -keystore android.keystore -alias android.keystore -keyalg RSA -validity 20000
jarsigner -verbose -keystore android.keystore -signedjar android_signed.apk android.apk android.keystore
刚开始遇到一个错误:
jarsigner: 无法对 jar 进行签名:java.util.zip.ZipException: invalid entry compressed size (expected 639 but got 642 bytes)
这是因为默认给apk做了debug签名,所以无法做新的签名。
这时就必须点工程右键 -> Android Tools -> Export Unsigned Application Package,或者从
androidManifest.xml
的Exporting上也是一样的。然后再基于这个导出的unsigned apk做签名,导出的时候最好将其目录选在你之前产生keystore的那个目录下,这样操作起来就方便了。