打包之前的准备
1.下载相关工具
1.1 下载 android skd
下载地址: http://developer.android.com/sdk/index.html(可能需要翻墙)
1.2 下载 gradle
下载地址:https://services.gradle.org/distributions/
1.3 下载 android studio
2.设置环境变量
2.1 JAVA_HOME 版本为1.8及以上
2.2 ANDROID_HOME 路径:D:\android\sdk
2.3 PATH 添加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
2.4 PATH 添加: C:\gradle\gradle-4.2\bin; (需下载)
说明:因为打包的时候,需要好多环境相关的配置。所以直接安装一个 Android studio,安装的时候会给我们自动的完成环境相关配置。
打包的步骤
在工程目录下,使用命令行工具:
step 1:
ionic cordova platform add android 添加平台
setp 2:
ionic cordova run android --prod --release 开发环境(--livereload)
# or
ionic cordova build android --prod --release 生产环境
step 3:
打包之后的文件地址 yourProjectName\platforms\android\app\build\outputs\apk
使用 keytool 生 成keystore 文件
keytool的概念
SUN公司提供了制作证书的工具keytool。
在JDK 1.4以后的版本中都包含了这一工具,它的位置为 JDK目录下:\bin\keytool.exe
。
我们需要生成一个keystore文件,然后保存好,之后不需要每次都生成新的。
命令行说明:
keytool -genkey -v -keystore [keystore的文件名] -alias [别名] -keyalg RSA -keysize 2048 -validity 10000
功能:
- 创建一个别名为
alias_name
的证书条目,该条目存放在名为my-release-key.keystore
的密钥库中,若alias_name
密钥库不存在则创建。
参数说明:
-genkey:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个”.keystore”的文件
使用的命令为:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
使用jarsigner签名
jarsigner是JDK自带的签名工具,我们需要将release版本的apk文件利用keystore文件进行加密,也就是签名,签名之后的apk才能发布到Android应用市场。
命令行简介:
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书的别名]
使用的命令行为:
jarsigner -verbose -keystore my-release-key.keystore -signedjar complete.apk app-release-unsigned.apk alias_name
使用 jarsigner签名遇到的问题:
- 命令行的最后使用的是:
证书的别名
,不是证书的名字