ionic项目相关开发工作完成之后(建立ionic工程项目可以参考上一篇文章ionic项目工程建立),就可以进行项目的编译打包apk应用包。
打包编译需要在平台环境下,这里只记录下android平台打包过程。
1、android开发环境建立
Android SDK Manager这一块是需要成功安装的,模拟器只是调试的方便。具体过程可以参考博文(包括java环境建立:http://www.cnblogs.com/kangjianwei101/p/5621723.html和Android SDK安装配置:http://www.cnblogs.com/kangjianwei101/p/5621238.html)。
完成jdk环境变量配置,打开控制台输入java –version回车显示如下版本信息则说明成功安装:
完成安卓sdk并配置,打开控制台输入adb回车,出现安卓Debug 版本号和下面一堆说明则说明成功安装:
2.打包ionic项目文件
完成上面环境的建立,就可以进行打包工作了:
(1)首先cmd控制台进入到ionic项目根目录下,执行添加到安卓平台指令:
1 ionic platform add android
成功的话,工程目录会多出一个platforms的目录:
这个过程可能会出现安卓工具不完整而出错,可以按照相关错误启动SDK Manager进行工具勾选安装。
(2)打包apk
ionic下打包生成apk有两种命令
1 ionic bulid android 2 3 ionic build --release android
第一个命令生成的是一个Cordova-debug.apk,很明显是用来进行本地开发测试使用的,注意这个apk是有签名的,所以他能被安装在手机上,但是这个不能用来上架(亲身探过坑),因为只有在绝对同样的环境下进行打包,才能保证这个apk的签名相同,意味着你这台机器必须始终保持正常并且系统和打包工具等不作修改。这明显是不合理的。
所以,我们必须采用生产的方式打包,就是第二个命令,这个命令生成的是一个无签名的apk,他无法安装在手机上,必须进行签名。
打包完成后会提示生成的apk文件位置,在myApp文件中的platformsandroiduildoutputsapk中。
(3)签名apk
从控制台cmd进入ionic项目platforms/android目录下,
<1>生成签名(.keystore)文件
1 keytool -genkey -v -keystore demo.keystore -alias demo.keystore -keyalg RSA -validity 20000
keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来;
-keystore demo.keystore 证书的文件名;
-alias demo.keystore 表示证书的别名
-keyalg RSA 生成密钥文件所采用的算法;
-validity 20000 该数字证书的有效期;
在执行上面的命令生成数字证书文件时,会提示你输入一些信息,包括证书的密码,示例如下:
完成后当前目录会生成一个demo.keystore文件证书。
<2>使用jarsigner工具为Android应用程序签名
1 jarsigner -verbose -keystore /yourpath/demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来;
-keystore /yourpath/demo.keystore 之前生成的证书
-signedjar demo_signed.apk 签名后的apk
demo.apk 需要签名的apk
demo.keystore 证书的别名
<3>使用zipalign工具优化已签名的apk(非必须但建议这么做)
该工具位于android-sdk-windows/tools/目录下,但是有时tools目录下没有,我是从其他的目录下找到的,搜索下就行,然后把这个工具复制一个到tools目录下。经过上面的签名操作,我们可以在platformsandroiduildoutputs目录下找到已经签名的apk,现在我们拷贝签名的apk文件到tools目录下,执行zipalign命令:
1 zipalign -v 4 notepad_signed.apk notepad_signed_aligned.apk
zipalign是工具名称,-v表示在DOS窗口打印出详细的优化信息;
- notepad_signed.apk notepad_signed_aligned.apk 表示对已签名文件notepad_signed.apk进行优化,优化后的文件名为notepad_signed_aligned.apk,这个就是可以安装到安卓平台手机上面。
3.可能出现的问题
(1)创建ionic项目提示缺少json文件:缺少ionic.config.json文件
方法:找到C:Users你的电脑名.ionic中的ionic.config文件拷贝到myApp中添加后缀json
(2)打包过程中出现错误:
Error: Failed to find 'ANDROID_HOME'environment variable. Try setting setting i
t manually.
Failed to find 'android' command in your'PATH'. Try update your 'PATH' to inclu
de path to valid SDK directory.
原因:没有配置安卓sdk环境变量或环境变量配置错误
(3)安装SDK Manager工具包出现错误:
Failed tocreate directory C: Program FilesAndroidandroid-sdk emp
方法:以管理员方式运行SDK Manager
(4)安装SDK Manager工具包出现错误:
Stopping ADB server failed (code -1).
原因:安卓sdk未配置环境变量或环境变量配置错误
(5)注意勿将英文字符中文