ionic 从打包到发布

1.打包前的环境搭建

ionic的运行环境这里就不一一赘述了,不懂得可以去网上看看教程。这里主要记录Android的打包过程


1.1安装jdk,并配置Java环境

首先安装java jdk (下载前看清版本是32还是64的),安装完成后配置环境变量,并输入$ java -version验证是否安装成功。(参考教程)

1.2安装并配置android sdk

android开发者官网下载sdk比较慢,甚至访问不了,所以建议去android中文网。安装完成后配置环境变量。输入$ android -h检查是否安装成功(参考教程)

1.3安装并配置gradle

配置完成sdk之后,就可以执行ionic platform add android编译app,不过这个时候需要下载gradle。(gradle过大,所以建议手动下载http://services.gradle.org/distributions/)。测试命令(查看版本):gradle -v


2.android打包(测试版)

创建ionic项目并可以成功启动以后,cd 进入到项目的根目录下,运行命令添加平台


ionic cordova platform add android

在确保jdk sdk环境变量无误后,执行编译命令


ionic cordova build android  //编译debug版本

ionic cordova build android --prod //prod优化代码提升运行速度

如果出现 Build Success! 说明你已经成功打包了

好了,如果你只是用来测试的话,到此debug版本的Android就打包成功啦!!!!


3.Android打包(发布版)

与开发版本不同,如若想要正式发布的话需要执行编译命令


ionic cordova build --release android

注意:发布要使用Release版本,所以这里加上--release选项。完成之后生成了未签名的apk,在目录platforms/android/build/outputs/apk/HelloWorld-release-unsigned.apk。

生产key


keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

这里会问一些问题,填写之后生成keystore文件。(git可能会出现中文乱码的状况。右击git bash here => options => text => local选择zh_CN character set选择utf-8 或者GBK)

对apk文件进行签名

首先切到platforms/android/build/outputs/apk/目录中。然后把之前生成的keystore文件粘贴到同级目录中。执行命令


jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name

HelloWorld-release-unsigned.apk 是之前未签名的apk

alias_name是签名之后的apk .

到这里基本上就可以正式发布了,不过个人建议还是使用zipalign优化一下apk

zipalign优化apk

笔者按照网上许多教程执行命令:


zipalign -v 4 notepad_signed.apk notepad_signed_aligned.apk

结果报错找不到zipalign 最后笔者找到zipalign 所在目录(zipalign是sdk的压缩代码工具,可以将我们的apk体积最小化,一般都在sdk安装目录build tools\25.0.1\zipalign.exe下 25.0.1是android sdk版本号)

在zipalign 所在文件目录打开命令行。执行命令


zipalign -v 4 D:xxxxxxx\apk\android-release-unsigned.apk  alias_name.apk

D:xxxxxxx\apk\ 是apk所在目录

android-release-unsigned.apk 是未优化的apk的名字

alias_name.apk 是优化apk的名字

现在去你的zipalign所在的路径,可以看到压缩完成的apk文件。

现在就可以将我们压缩完成的apk文件上传到相应的应用市场,填写相应的APP信息,等待审核就可以了。

你可能感兴趣的:(ionic 从打包到发布)