ionic4 打包的问题以及注意事项

最近公司准备要运用ionic+angular做h5混合app,记录一下踩的坑
Ionic 是一个开源UI工具包,用于使用Web技术(HTML,CSS和JavaScript)构建移动和桌面应用程序。并与其他库或框架(如Angular)很好地集成。

ionic\angular\cordova之间关系

ionic\angular\cordova之间关系的文章来源:https://blog.csdn.net/u010730126/article/details/61413346

Ionic和Angular

首先要明确的是Ionic是Angular的衍生品,Angular是单独的JS库,和jQuery一样能够独立用于开发应用,而Ionic只是对Angular进行了扩展,利用Angular实现了很多符合移动端应用的组件,并搭建了很完善的样式库,是对Angular最成功的应用样例。即使不使用Ionic,Angular也可与任意样式库,如Bootstrap、Foundation等搭配使用,得到想要的页面效果。

Ionic/Angular和Cordova

它们在混合开发中扮演的是不同的角色–Ionic/Angular负责页面的实现,而Cordova负责将实现的页面包装成原生应用(Android:apk;iOS:ipa)。就像花生,最内层的花生仁是Angular,花生仁的表皮是Ionic,而最外层的花生壳则是Cordova。包装完成之后我们的页面才有可能调用设备的原生能力,最后才能上传到应用商店被用户使用。

关于Cordova插件要明确以下几点:

  • Cordova插件的作用是提供一个桥梁供页面和原生通信,首先我们的页面不能直接调用设备能力,所以需要与能够调用设备能力的原生代码(Android:Java;iOS:OC)通信,此时就需要Cordova插件了。

  • Cordova插件能够再任何Cordova工程中使用,和使用什么前端框架(如Ionic)无关。

  • Ionic 2中封装了Ionic Native,方便了Cordova插件的使用,但在Ionic 2中仍然可以像Ionic 1中一样使用Cordova插件,Ionic Native不是必须的。

  • 即使在Ionic 2中使用了Ionic Native,也首先需要手动添加插件,如:cordova plugin add cordova-plugin-pluginName。

ionic的打包

1:安装node.js
去官网下载
2:安装java jdk
请查看http://www.cnblogs.com/BetterMyself/p/6420807.html
3:安装android sdk
下载地址 http://www.android-studio.org/
4:环境配置

1.搜索控制面板或者编辑系统环境变量-点击环境变量(N)
2.在系统变量里面添加环境变量(有的话就点击编辑没有点击新建)
3.点击新建
4.依次输入变量名-输入变量值
分别配置五个参数:
java jdk:

CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

JAVA_HOME
C:\dev\Java\jdk1.8.0_171
变量值,必须是自己装jdk时的路径,比如我的安装路径是C:\dev\Java\jdk1.8.0_171

Path
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\dev\gradle-4.7\bin;C:\dev\android-sdk-windows;%SDK_HOME%\platform-tools;%SDK_HOME%\tools;

android sdk

ANDROID_HOME

C:\dev\android-sdk-windows

SDK_HOME
C:\dev\android-sdk-windows

5.点击确定
配置完之后在环境变量列表就多了几个变量
这里写图片描述
这里写图片描述
这里写图片描述
配置完环境变量之后重启cmd
立即验证是否配置成功,进入命令提示符,输入javac,点击“Enter”,出来这些中文,就行了(下图前面提到的文章里面找的图)

这里写图片描述

5:打包命令:ionic cordova build android –prod –release
重点:如果报错要确保你安装的ionic以及cordova下载正确(之前用npm下载cordova不能下载下来,之后用淘宝源两个都能下载下来,但是打包出错,最后尝试代理翻墙,成功下载,并且要使用代理打包或直接npm(第二次尝试npm成功),之前在ionic以及cordova都正常的情况下打包出现错误,使用代理之后正常,或许是偶然,不断尝试中。。。)
此步骤生成了一个打包文件
这里写图片描述
通过提示在项目目录找到此文件位置,待会要用到

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

踩坑一:报错这里写图片描述
及时没有keytool的命令
我找到了一个提示,是java jdk环境配置出现问题了
这里写图片描述
于是先测试的在命令行输入java,没有问题,出入javac,没有找到javac的命令
这里写图片描述
于是我试着在c盘输入java\javac\keytool(因为我下载的java环境都在C盘),有东西打印出

这里写图片描述

最后我把%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;这两个在path的顺序挪到最前,
这里写图片描述
确定,重启cmd,输入命令javac成功,于是我又把%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;挪回到原来的位置,输入命令也成功,意思就是我没有操作任何东西自己好了,只能什么时候再重现问题,此文章不断更新
踩坑二:没有生成 my-release-key.keystore签名秘钥文件
这里写图片描述
提示非法选项 -,于是我把命令中- alias 改成了-alias
这里写图片描述
成功,他会指引你注册账号你按照指引进行,每一次生成账号都可以不一样,有效期为10000年
7:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name
注意请把HelloWorld-release-unsigned.apk改成app-release-unsigned.apk,与打包文件名字同步
8:最后,必须运行zip对齐工具来优化APK zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk
这句命令不是在这里执行的
首先把之前打好的包app-release-unsigned.apk移到C:\dev\android-sdk-windows\build-tools\28.0.2这个目录下,这个目录就是angular sdk所在的位置,

这里写图片描述

然后在这个目录下启动cmd,输入命令
注意吧 HelloWorld-release-unsigned.apk改成与打好的包的名字一样app-release-unsigned.apk,同时把HelloWorld.apk改成你希望的名字,我自己改成了App.apk
这里写图片描述
执行完毕后出现 Verification succesful 字样并且C:\dev\android-sdk-windows\build-tools\28.0.2目录下出现了App.apk文件就算是成功了
这里写图片描述
这里写图片描述
App.apk就算是一个手机应用了,只是没有上传到应用商店,直接可以发送到手机访问

未完待续 持续踩坑…

猜你喜欢

转载自blog.csdn.net/z15802933724/article/details/82422537
今日推荐