安卓移动应用打包上线那些事儿

开发工具:hbuilder > 云打包

打包上线的时候需要有json文件的配置,此处不赘述。本文主要记录新版本打包上线更新。很多开发者在第一版本打包时不进行签名私有证书等设置,但在后期版本更新时会用到,比如百度移动应用开发平台就需要签名。这是常见的坑,慢慢填。

签名的生成

  1. 安装Java的JDK

  2. 使用keytool生成签名

    • 生成keystore文件:
      • 在Windows下,按Win+R,输入cmd,回车。
      • 输入:cd C:\Program Files\Java\jdk1.7.0\bin,回车(进入keytool所在目录)。
      • 输入:keytool -genkey -alias abc.keystoreabc.keystore中的abc可以自定义,区分大小写,这是你的签名证书文件)。
      • 根据提示输入密钥(一般建议20位数字,务必记住),输完后直接按回车。
      • 根据提示输完信息,最后会有信息确认,输入Y,回车。
      • 这时在keytool所在目录会生成一个abc.keystore文件。

接下来就可以给我们的应用apk文件进行签名了。

给apk文件添加签名(用jarsigner签名apk)

  1. 将需要添加签名的apk放到C:\Program Files\Java\jdk1.7.0\bin下,如:myapp.apk
  2. Win+R,输入cmd,输入cd /d C:\Program Files\Java\jdk1.7.0\bin,回车。
  3. 输入:jarsigner -verbose -keystore abc.keystore -signedjar myappx.apk myapp.apk abc.keystore,回车(myappx.apk是签名后的apk)。
  4. 输入之前记住的密钥,apk签名成功。

引用网络上的操作方法:

默认生成的APK文件是debug签名的,如果要发布到Android Market,那么需要另外用keytool和jarsigner来给你的APK签名(主要是设定时间和所有者)。

按照常见步骤:

  1. keytool -genkey -v -keystore android.keystore -alias android.keystore -keyalg RSA -validity 20000
  2. 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的那个目录下,这样操作起来就方便了。

上一篇
下一篇