VUE- Cordova打包APP

现在使用vue开发的项目越来越多,使用vue开发的移动端打包就成了最大的问题。
现在前端打包方案有好多种,但是综合来说,我比较喜欢用cordova来进行Android和ios的打包,配置完成之后,每次只需要一条命令就可以完成打包。

1.安装cordova
这一步的前提是已经完成安装node和npm,如果没有安装的话,请先完成node和npm的安装。
node安装:直接进入官网https://nodejs.org/zh-cn/,下载最新版本安装。安装之后在命令行中使用”node -v” 检查安装是否成功。
npm安装:由于新版的nodejs已经集成了npm,所以node安装时npm也一并安装好了。同样可以通过输入 “npm -v” 来测试是否成功安装。

以管理员身份运行 CMD 控制台

使用命令

npm install -g cordova

来全局安装cordova,安装成功之后,使用命令

cordova -v

来检查是否正确安装,正确安装会显示安装的cordova版本号。

2.新建cordova项目

执行命令

cordova create myApp1 org.apache.cordova.myApp myApp2

来新建cordova项目,初始化cordova开发环境。

其中:

myApp1:cordova目录名
org.apache.cordova.myApp: 包名
myApp2: 项目名(在config.xml中查看)

生成的cordova文件中

config.xml -包含应用相关信息,使用到的插件以及面向的平台

platforms – 包含应用运行平台如 Android 和 iOS 上对应的 Cordova 库

plugins – 包含应用所需插件的 Cordova 库,使得应用能够访问例如照相机和电池状态相关的事项。

www – 包含应用源代码,例如 HTML, JavaScript 和 CSS 文件

hooks – 包含为个性化应用编译系统所需的脚本

进入项目

cd myApp1

使用命令,执行有点慢,稍等一会就好。

cordova platform add android

来生成Android平台的cordova库,这时platforms文件夹中会生成一个android文件夹。

到这里,cordova项目就已经建好了。

3.新建vue项目

为了方便,不需要每次编译都拷贝文件,可直接在cordova项目根目录中创建vue项目。

首先全局安装Vue-cli脚手架。

npm install -g vue
npm install -g vue-cli

新建VUE项目

vue init webpack MyApp

完成之后的目录如下所示。

到这里,vue项目即构建完成。

4.修改文件
修改Vue项目config/index.js文件.

进入项目

cd MyApp

运行项目

npm run init
npm run dev

打开地址:http://localhost:8081

5.编译vue项目
在vue项目根目录执行命令

npm run build

即可编译vue项目自动到cordova主目录下的www文件夹中。

6.调试打包apk软件
调试打包软件之前,首先检查androidsdk是否正确安装,执行命令

cordova requirements

即可看到当前环境中sdk安装情况。显示如下即表示环境正确安装。(只需确认正确安装即可,不需每次都去检查)

在cordova主目录下使用命令

cordova run android

来联调android软件(需连接真机或者模拟器)。

执行命令

cordova build android

来打包成apk软件(…myApp1/platforms/android/app/build/outputs/apk/debug/app-debug.apk)。

7.APK签名
APK都必须经过数字签名后才能安装到设备上,签名需要对应的证书(keystore),大部分情况下 APK 都采用的自签名证书,就是自己生成证书然后给应用签名。
数字签名证书是给APK打包所必需的文件,所以我们先要把数字签名证书生成。

需要安装Java JDK(建议8.0以上)

使用keytool工具生成证书:keytool已经集成在JDK中了。我们只需要在命令提示符窗口中输入相应的指令及信息即可快速生成数字证书,具体做法为:

在命令行中输入如下指令:

keytool -genkey -v -keystore E:\VUEPROD\recordmy\platforms\android\app\build\outputs\apk\release\recordmy.keystore -alias recordmy -keyalg RSA -validity 30000

(1)keytool代表工具名称(固定写法,不改变)
(2)-genkey意味着执行的是生成数字证书操作(固定写法,不改变)
(3)-v表示将生成证书的详细信息打印出来,显示在dos窗口中
(4)-keystore recordmy.keystore表示生成的证书的文件名为"recordmy.keystore"(根据需求,设置你的证书名)

(5)alias recordmy.keystore表示证书的别名为"recordmy.keystore"。(一般设置和上面的文件名相同,当然可以设置不同的别名)

(6)-keyalg RSA表示生成密钥文件所采用的算法为RSA(固定写法,不改变)
(7)-validity 3000代表该数字证书的有效期为30000天,30000天之后该证书将失效

在执行上面的指令生成证书文件时,会如下图提示你输入一些信息,包括证书的密码等

本文中密码设置为:recordmy

keytool 证书生成成功。

生成带签名的apk有两种方式,一种先生成未签名debug版本,再加上数字签名证书然后生成带签名的APK。另外一种就是直接一条命令生成带签名的APK。

(1)先生成未签名的debug版本的apk
首先执行命令

cordova build android --release

就会生成一个app-release-unsigned.apk。把数字签名放到生成的未签名的apk所在的目录下,进入生成的apk文件目录,输入以下命令:

jarsigner -verbose -keystore recordmy.keystore -signedjar app-release.apk app-release-unsigned.apk recordmy 

这时的apk就会是一个已经签名的apk了,修改一下名字即可直接放到设备上安装。

但每次打包输入命令行参数是很重复的,Cordova 允许我们建立一个 build.json 配置文件来简化操作。在cordova根目录新建文本文档,改名为build.json。

内容如下:

{
"android": {
"release": {
"keystore": "recordmy.keystore",
"alias": "recordmy",
"storePassword": "recordmy",
"password": "recordmy"
}
}
}

密钥文件也放在cordova跟目录下。

cmd 中进入文件生成目录:E:\VUEPROD\recordmy\platforms\android\app\build\outputs\apk\release

执行打包语句:

cordova build –release

就可以生成带签名的apk了

完成。

如使用 iview 框架,打包时需注意修改以下位置。

否则打包APP后,容易出现空白页情况。

main.js 修改mode值。

修改输出路径

webpack.base.config.js

webpack.prod.config.js

引用:https://www.cnblogs.com/qirui/p/8421372.html

引用:https://blog.csdn.net/qq_19891827/article/details/78183705

VUE- Cordova打包APP的更多相关文章

  1. 使用 Cordova 打包 app

    1.安装nodejs 2.安装 cordova npm install -g cordova 3.Cordova 打包成安卓APK需要用到ANT打包工具,首先配置好java环境: 下载安装Java J ...

  2. Vue+cordova开发App

    Vue+cordova开发App https://www.imooc.com/article/70062

  3. 记录下hbuilder vue项目打包APP 在IOS上点击延迟的问题

    做的项目打包成APP在IOS 上有延迟问题,在安卓下却不会,联想到之前 用IONIC时打包的APP也是 在IOS下有300毫秒延迟问题.所以 只能 认吧. 安装fastclick 插件: npm in ...

  4. Cordova开发App入门之创建android项目

    Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑 ...

  5. [Android教程] Cordova开发App入门(一)创建android项目

    前言 Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...

  6. Cordova打包vue项目生成Apk (解决cordova build android抛出的zip问题)

    最近对vue前端框架情有独钟.但研究了一下怎么把vue项目打包成android apk来玩玩. 首先讲一下创建vue2.x项目.其实在之前的文章中都有写过,有兴趣的同学可以去看看.http://www ...

  7. cordova打包vue2(webpack)android、ios app

    使用cordova打包vue2(webpack)app for android ios1.vue项目通过vue-cli脚手架建立项目,使用webpack进行打包,下边是一整套命令. #npm 版本最好 ...

  8. 教你用Cordova打包Vue项目

    现在国内越来越多的开发者使用Vue开发混合app,但是当大家开发完成过后才发现不知道该怎么将Vue项目打包成app. 据我现在的了解打包Vue项目目前流行的就是使用weex和cordova.weex是 ...

  9. 使用cordova + vue搭建混合app框架

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zxj0904010228/article ...

  10. cordova+vue混合式开发App

    应要求第一次使用cordova打包了一下vue写的app项目,期间遇到了不少问题,整理一下流程并记录一下常见问题吧.        cordova打包项目需要的环境配置啥的就不具体讲啦,百度一下很多教 ...

随机推荐

  1. java编程,通过代理服务器访问外网的FTP

    有些时候我们的网络不能直接连接到外网, 需要使用http或是https或是socket代理来连接到外网, 这里是java使用代理连接到外网的一些方法, 希望对你的程序有用.方法一:使用系统属性来完成代 ...

  2. Js为Dom元素绑定事件须知

    为异步加载的Dom 元素绑定事件必须在加载完成之后绑定: $('body').load('LearnClickBinding.ashx');$('a').click(function () { ale ...

  3. Android 自定义PopWindow完整代码

    1.布局文件的编写 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:and ...

  4. VirtualBox安装Debian

    1.下载Debian的dvd1,按照http://www.jb51.net/os/85858.html网上教程安装Debian 1.1.我创建了20G的虚拟磁盘,分区的时候我分了3个区,2G交换空间, ...

  5. 刷题55. Jump Game

    一.题目说明 题目55. Jump Game,给定一组非负数,从第1个元素起,nums[i]表示你当前可以跳跃的最大值,计算能否到达最后一个index.难度是Medium. 二.我的解答 非常惭愧,这 ...

  6. c++生成的动态库移到其他电脑上,动态库不能运行

    最近的一个项目中遇到了一个问题,C++的一个动态库在我自己的电脑上可以被C#程序引用,我把程序安装到其他电脑上出现了异常,提示找不到DLL,偶然间发现我安装vsc++,C#的程序就不会报错.因为这个C ...

  7. 第四张5G牌照发给广电,能打破三大运营商的垄断吗?

    近段时间,多个国家处于莫须有的安全性考虑,禁止华为参与核心5G网络设备竞标.其实这就从侧面反映出,国内民族企业在5G层面的领先性.当然,这也让我们认知到,5G网络将是新时代的竞争关键节点.为此,国内正 ...

  8. ThinkCMF框架上的任意内容包含漏洞

    一.背景 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建. ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据 ...

  9. R 再也不用愁变量太多跑回归太麻烦!R语言循环常用方法总结

    在高维数据分析过程中,为了筛选出与目标结局相关的变量,通常会用到回归分析,但是因为自变量较多,往往要进行多次回归.这就是统计编程语言发挥作用的时候了 有些大神们认为超过3次的复制粘贴就可以考虑使用循环 ...

  10. LabVIEW面向对象的ActorFramework(1)

    本系列文章主要阐述以下几个问题: (1)什么是面向对象编程? (2)为什么要学习面向编程? (3)LabVIEW面向编程学习为什么有点难? (4)LabVIEW面向对象的编程架构:Actor Fram ...