cordova打包apk

使用cordova打包apk

 

一:安装并配置jdk.

jdk的下载安装和配置,网上教程也很多,此处不再赘述。

二:安装Android studo

下载地址:http://www.android-studio.org/

安装完毕后,第一次打卡studio卡住,参考下文解决:

http://www.2cto.com/kf/201703/613266.html

 

安装node

Window 上安装Node.js

可以采用以下两种方式来安装。

1Windows安装包(.msi)

32位安装包下载地址https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.msi

64位安装包下载地址https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi

2Windows二进制文件 (.exe)安装

32位安装包下载地址http://nodejs.org/dist/v0.10.26/node.exe

64位安装包下载地址http://nodejs.org/dist/v0.10.26/x64/node.exe

 

 

安装npm

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功:

$ npm -v

2.3.0

如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:

$ sudo npm install npm -g

/usr/local/bin/npm ->/usr/local/lib/node_modules/npm/bin/npm-cli.js

[email protected] /usr/local/lib/node_modules/npm

如果是 Window系统使用以下命令即可:

npm install npm -g

使用淘宝镜像的命令:

cnpm install npm -g

 

Npm资源下载较慢有些需要FQ,可以安装cnpm,cnpm下载国内资源

npm install -g cnpm --registry=https://registry.npm.taobao.org

也可以将npm切换成淘宝镜像地址,这样可以直接使用npm命令下载资源,速度会快很多,而其如果不修改npm,使用cordova的命令:cordovaplatform add android 会包如下错误:

npm修改成淘宝镜像地址之后,可以解决此问题。

修改npm地址方法:

镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在):

1.通过config命令

npm config set registry https://registry.npm.taobao.org

npm info underscore(如果上面配置正确这个命令会有字符串response

2.命令行指定

npm --registry https://registry.npm.taobao.org info underscore

3.编辑 ~/.npmrc 加入下面内容

registry = https://registry.npm.taobao.org

 

安装cordova

npm install -g cordova

过程较慢,耐心等待。

当安装完成之后,在命令窗口中输入以下命令,来验证cordova是否安装成功:
cordova  -v

 

六、cordova的打包过程

(一)创建一个cordova项目
在命令行中敲入以下命令:
cordova create test com.example.test
:其中第一个位置的test是指你的项目名,第二个位置的com.example.test是指你打包的apk的包名。

 

(二)增加cordova平台
进入你建立的项目目录test,在命令行中敲入以下命令:
cordova platform add android

 

此时可能会下载很长时间不能下载成功,最后报错。可以尝试一下方法

 

方法1:将npm资源地址修改成国内淘宝镜像地址:

Cmd执行如下命令:

npm config set registry https://registry.npm.taobao.org

npm info underscore(如果上面配置正确这个命令会有字符串response

 

如果还存在此问题,可以尝试下面的方法:

方法2查看可用的android的版本

Crodova platform ls

查看对应的andriod的版本,例如6.2.2

使用命令cordova platform add[email protected]

方法3

cordova platform rm android && cordova platform addandroid

方法4

cordova platform add android –nofetch

 

解决该问题可参考:https://issues.apache.org/jira/browse/CB-12767

https://stackoverflow.com/questions/35451207/cordova-error-failed-to-fetch-platform-android

 

(三)增加插件(可选步骤)

如果你想访问手机的一些资源,例如相机,sd卡之类的,你就需要安装一些插件:
cordova plugin add cordova-plugin-device
cordova plugin add cordova-plugin-network-information
cordova plugin add cordova-plugin-battery-status
cordova plugin add cordova-plugin-device-motion
cordova plugin add cordova-plugin-device-orientation
cordova plugin add cordova-plugin-geolocation
cordova plugin add cordova-plugin-camera
cordova plugin add cordova-plugin-media-capture
cordova plugin add cordova-plugin-media
cordova plugin add cordova-plugin-file
cordova plugin add cordova-plugin-file-transfer
cordova plugin add cordova-plugin-dialogs
cordova plugin add cordova-plugin-vibration
cordova plugin add cordova-plugin-contacts
cordova plugin add cordova-plugin-globalization
cordova plugin add cordova-plugin-splashscreen
cordova plugin add cordova-plugin-inappbrowser
cordova plugin add cordova-plugin-console
cordova plugin add com.cmpsoft.mobile.plugin.pushnotification
添加插件的过程可能需要等待一些时间

 

(四)编译打包
将你写的一些htmlcssjs文件放到你建的项目目录下的www文件下对应的位置:

然后在命令行下输入以下命令:
cordova build android

等待打包成功后,然后在项目的platform文件夹下找到apk安装文件。

执行cordova build android命令。

如果出现下面错误:

需要安装gradle

Gradle安装方法:

1、       手动下载gradle
https://services.gradle.org/distributions/gradle-3.5-bin.zip
2
、添加环境变量

PATH=D:\Program Files (x86)\gradle-3.5\bin
3
、关闭cmd
4
、打开cmd,输入gradle-v,查看是否安装成功

 

 

 

(五)签名

上述操作默认生成的apk是未签名的,APK都必须经过数字签名后才能安装到设备上,签名需要对应的证书(keystore),大部分情况下 APK 都采用的自签名证书,就是自己生成证书然后给应用签名。

数字证书

数字签名证书是给APK打包所必需的文件,所以我们先要把数字签名证书生成。在命令提示符下输入 keytool -genkey -v -keystore D:\mytest.keystore -alias cordova-demo-keyalg RSA -validity 20000   

-keystore D:\mytest.keystore表示生成的证书及其存放路径,如果直接写文件名则默认生成在用户主目录下;
-alias cordova-demo 表示证书的别名是cordova-demo
-keyalg RSA 表示采用的RSA算法;
-validity 20000表示证书的有效期是20000天。

      根据指令输入密钥库口令,是不可见的。

     依次输入下面的问题。最后到【否】那里时输入y
     
再输入密钥口令(可以与密钥库口令相同),如果相同,直接回车,记住这两个口令,后面签名会使用到。

    这时便会生成一个文件mytest.keystore,就是我们需要的签名文件。

Apk签名

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

  第一种,先生成未签名的debug版本的apk

      即首先直接cordova build android --release,然后会生成一个android-release-unsigned.apk。把数字签名放到生成的未签名的apk所在的目录下,输入以下命令:

   jarsigner-verbose -keystore /yourpath/demo.keystore -signedjar/yourpath/demo_signed.apk /yourpath/demo.apk  /yourpath/demo.keystore 

例:

jarsigner -verbose -keystore mytest.keystore-signedjar demo_signed.apk 123.apk  mytest.keystore

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

  第二种,直接生成带签名的apk

     有了数字签名之后,数字签名需要放在cordova项目根目录下或者可以修改下面指令的keystore里的路径可以直接在cordova build 中指定所有参数来快速打包,这会直接生成一个android-release.apk(已经是带签名的了)给你

      cordova build android --release -- --keystore=mytest.keystore--alias=cordova-demo --storePassword=testing --password=testing1

 

 

·        查看apk的签名

查看签名是否成功,可将签名后的文件,后缀名apk的改为zip,解压。

在该目录下,输入如下命令:

keytool -printcert -file META-INF/CERT.RSA

 

 

猜你喜欢

转载自blog.csdn.net/xia_xi_long/article/details/76828064