1. 程式人生 > >cordova環境搭建以及將vue的webapp打包成ios和安卓的debug和release版本app

cordova環境搭建以及將vue的webapp打包成ios和安卓的debug和release版本app

簡介

cordova可以幫我們將一個webApp打包成安卓apk和ios的App,本文詳細描述了cordova的環境搭建以及打包vue專案的webapp成手機端的App的詳細過程,打包的app分為debug版本的除錯版以及能上線的release版本,其中都會做詳細介紹,文章中會也會描述整個環節遇到的坑以及解決辦法。

cordova環境搭建

安裝node以及全域性安裝cordova,node安裝自行百度,安裝完node在命令列執行 sudo npm install -g cordova 然後建立cordova專案,命令列輸入 cordova create hello com.example.hello HelloWorld

hello指的是建立的資料夾名稱,cordova專案的資料夾名稱 com.example.hello指的是做的app的id HelloWorld是App的名字 現在cordova專案已經搭建完畢

安卓環境配置

打包安卓app需要配置java的環境變數和Android Stuido,Android Studio集成了安卓開發的SDK什麼的,下載完就可以了,java和android Studio下載完成之後還要下載Gradle(一個構建工具)JAVA傳送門 Android Studio Gradle其中下載gradle有一個坑,gradle支援mac的兩個包管理工具下載,Homebrew和MacPorts,這兩個安裝一個就可以了,我選的是MacPorts,但是在安裝的時候卡住,網上也又很多安裝的時候卡住的問題,網上試了很多方法都不可以,最後我是命令列強制重啟了mac,然後在重新安裝之後才安好了,homebrew我沒試,建議用homebrew下載; 友情提示:網路最好能翻牆

ios環境配置

首先需要去App Store下載Xcode, 下載完成後在命令列執行 xcode-select --install 然後執行 sudo npm install -g ios-sim sudo npm install -g ios-deploy 最後還要安裝CocoaPods,執行 sudo gem install cocoapods 下載完成後ios環境應該就可以了;

vue專案改動

vue專案要在index.html裡引入cordova.js圖片描述 修改config中的index.js裡的檔案 修改build中

assetsSubDirectory: 'static',
assetsPublicPath: '/',

assetsSubDirectory: '',
assetsPublicPath: '',

然後執行專案看看能不能起來,如果起得來就

npm run build

打包vue專案,將打包好的dist目錄裡的檔案全部拷貝到cordova專案中www資料夾,將www資料夾的內容全部替換 然後命令列

cd hello

進入資料夾

 cordova platform add ios --save
 cordova platform add android --save

分別對應ios和android 此時可以執行

cordova requirements

檢視環境是否安裝完全,如果又報錯,按照提醒下載就行了 打包安卓debug版本

cordova build android

打包成功會顯示打包的apk路徑,apk名字叫app-debug.apk可以安裝在安卓手機上執行 ios打包完成需要在xcode裡執行,然後在模擬器看效果

安卓release版本打包

Android app 的打包流程大致分為 build , sign , align 三部分。 sign是為 APK 簽名。不管是哪一種 APK 都必須經過數字簽名後才能安裝到裝置上,簽名需要對應(keystore),大部分情況下APK都採用的自簽名證書,就是自己生成證書然後給應用簽名。

align是壓縮和優化的步驟,優化後會減少 app 執行時的記憶體開銷。

首先,我們生成一個 release APK 。這點在 cordova build 命令後加一個 --release 引數局可以。如果成功,你可以在 release 目錄下看到一個 android-release-unsigned.apk 檔案。

cordova build android --release

Sign

我們需要先生成一個數字簽名檔案(keystore)。這個檔案只需要生成一次。以後每次 sign 都用它。

keytool -genkey -v -keystore release-key.keystore -alias cordova-demo -keyalg RSA -keysize 2048 -validity 10000

Keytool 是用於管理金鑰和證書的工具,使使用者和管理員能管理自己的公 / 私鑰對以及相關的證書。 -genkey:用於生成公 / 私金鑰對 -v:詳細輸出 -keystore:祕鑰庫名稱 -alias:要處理的條目的別名 -keyalg:祕鑰演算法名稱 -keysize:祕鑰長度 -validity:有效天數 執行後會要求設定 keystore 的密碼和 key 的密碼,要記得!完成後會在根目錄有一個release-key.keystore的檔案 然後對我們的android-release-unsigned.apk檔案進行簽名 首先我們要把要簽名的android-release-unsigned.apk移動到和release-key.keystore同一個目錄下

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore release-key.keystore android-release-unsigned.apk cordova-demo

這個命令中需要傳入證書名 release-key.keystore ,要簽名的 APK android-release-unsigned.apk ,和別名 cordova-demo 。簽名過程中需要先後輸入 keystore 和 key 的密碼。命令執行完後,這個 APK 就已經改變了。注意這個過程沒有生成新檔案。

-verbose: 簽名/驗證時輸出詳細資訊 -sigalg:簽名演算法的名稱 -digestalg:摘要演算法的名稱 -keystore:祕鑰庫位置

最後我們要用 zipalign 壓縮和優化 APK 找到zipalign.exe的所在目錄,一般在資源/Android/SDK/build-tools/20.7.03/ 在這個資料夾下開啟終端,將簽名完的apk移到這裡,然後執行,不移動apk需要填寫正確路徑

./zipalign -v 4 android-release-unsigned.apk cordova-demo.apk

這一步會生成最終的 APK,我們把它命名為 cordova-demo.apk 。它就是可以直接上傳到應用商店的版本。