最近同事做了個angular項目,因為要離職,所以項目我就來接手了,用ionic打包app,然后無數配置的坑就等着我了~~~
環境安裝
1.nodejs
因為自己剛接觸做angular項目,就更新到了最新的版本
注意:之前一個網友說自己安裝版本5.7,盡量不要安裝太新的版本,因為可能會出現兼容性問題,一開始本人安裝的是6.+的版本,后來出現問題的,馬上換回5.7的,問題就不會出現了。
2.JDK
下載安裝jdk,我這里裝的版本是1.8,(切記要和自己電腦的位數要一致 32/64,不然打包過程可能會出問題)
jdk官網下載地址:https://www.oracle.com/technetwork/java/javase/overview/index.html,下載好后默認安裝完成。
bug解決辦法:jdk之前安裝了最新版本13.0.1 ,結果打包的時候一直出這個錯,最后解決辦法:把13.0.1卸載掉,安裝低版本,1.8.0,有效解決問題
配置環境變量:(我的電腦——屬性——高級系統設置——環境變量——系統變量)
新建系統環境變量 JAVA_HOME,路徑指向jdk的安裝目錄,如:C:\tools\Java\jdk1.8.0_151;
新建系統環境變量CLASS_path,路徑: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在系統變量path里面添加:%JAVA_HOME%\bin;
嘗試window+R向命令行輸入java -version
3.SDK
下載安裝sdk即可,下載官網https://www.androiddevtools.cn/ 我安裝的Windows IDE 安裝版 (64-bit)版本
默認安裝完成
4.確保已經安裝有ionic 和cordova
npm install ionic cordova -g
5.到這里,環境安裝的差不多了,可以進行打包了
執行添加安裝平台的命令
cordova platform add android
打包項目
ionic cordova build android --prod --release
6.運行的時候報錯,沒有安裝gradle。從官網下載 https://gradle.org/install/#manually
點擊complete下載,解壓放到tools文件夾下,然后在path進行配置(我的電腦——屬性——高級系統設置——環境變量——系統變量——path配置gradle路徑)
7.配置完成后,關閉cmd窗口,重新打開cmd命令,輸入ionic cordova build android --prod --release 進行打包,會出現下面這個地址,就是打包好的安卓apk地址,然后進行手機安裝
8.安裝過程中發現安裝失敗,因為沒有證書,原因沒有簽名所以不會給通過
解決辦法:
1.C:\Users\huochaihy\AppData\Local\Android\Sdk\tools\bin>sdkmanager --licenses 后續全選y(yes),安卓sdk 授權
2.新建一個簽名文件夾,在文件夾下打開cmd窗口命令,把剛才找到的apk包復制過來,輸入以下命令生成密匙
# 生成密鑰 (參考地址:https://blog.csdn.net/bao19901210/article/details/79629112)
# keytool -genkey -v -keystore myApp.keystore -alias myApp -keyalg RSA -keysize 2048 -validity 20000
# keytool -genkey -v -keystore 密鑰名字 -alias 別名 -keyalg RSA -keysize 2048 -validity 20000
3.生成簽名 (參考地址:jarsgner 簽名命令 https://blog.csdn.net/dengweijunkedafu/article/details/69949003)
-- 簽名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myApp.keystore app-release-unsigned.apk myApp
注意:把簽名單獨拎出來的原因是:你只需要執行簽名命令就行,就不需要在執行生成簽名文件命令了,給他拎出來是因為如果我生成的簽名文件在你剛才那個目錄里你重新打包就會把簽名文件刪除掉
8.最后我們如果更新了項目,重新打包的時候,先運行
ionic cordova build android --prod --release
成功后找到安卓apk,把沒有授權的apk文件放到自定義“簽名”文件夾下,然后再運行簽名命令就可以了
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myApp.keystore app-release-unsigned.apk myApp
最后“簽名”文件夾中的app-release-unsigned.apk進行安裝就可以了
==================================================================================================================
bug問題總集:
node-sass 安裝卡在node scripts/install.js
解決辦法:命令行輸入:npm install node-sass
ionic 打包報錯An error occurred while running cordova prepare (exit code 1):
解決辦法:刪除並重新添加平台以使用以下命令解決問題:
cordova platform rm ios
cordova platform add ios
如果執行 ionic cordova build android報錯,執行下面的試下:
cordova platform rm android
cordova platform add android
cordova.cmd build android --release exited with exit code 1. 報錯
解決辦法:任務管理器里邊結束java platform進程