1.基本依賴環(huán)境
nodejs環(huán)境 (作為一個(gè)前端相信你已經(jīng)有了)?
最好提前配置好node的環(huán)境變量盾碗,便于全局訪問(wèn)章咧。
jdk(java的開發(fā)基礎(chǔ)類庫(kù)验靡,因?yàn)?android )?
SDK(安卓開發(fā)集成包劲弦,集成了安卓的開發(fā)工具耳标,插件,API等等)?
gradle( JAVA界的Weboack 邑跪,支撐app的編譯次坡,打包的流程)
2. 基本工具
gitbash(就是用來(lái)替代windows自帶的丑陋的CMD)
下載:我都打包了!
鏈接:https://pan.baidu.com/s/1mje7ZHu 密碼:ob6m
windows自帶的CMD(window+R輸入CMD画畅,管理員身份運(yùn)行)
VSCode(微軟爸爸開發(fā)的前端IDE)
下載:請(qǐng)自行去微軟爸爸官網(wǎng)下載砸琅。
3.環(huán)境配置
3.1 nodejs (需要配置環(huán)境變量)
前端必會(huì),跳過(guò)轴踱。
不會(huì)的去這里看傻瓜教程:http://www.reibang.com/p/03a76b2e7e00
3.2 jdk (無(wú)需配置環(huán)境變量)
下載:已經(jīng)上傳網(wǎng)盤↓
鏈接:https://pan.baidu.com/s/1mje7ZHu 密碼:ob6m
請(qǐng)自行根據(jù)系統(tǒng)安裝32/64位的版本症脂。
安裝方法:下載完成,解壓,直接按照提示安裝诱篷,全局點(diǎn)確定壶唤,不出意外,最后的安裝路徑為:C:\Program Files\Java
OK棕所,jdk安裝完成闸盔,在cmd中,輸入$ java -version驗(yàn)證是否安裝成功琳省。
OK迎吵。
3.3 sdk (需要配置環(huán)境變量)
下載:跟上面的一樣,我都打包了针贬。
鏈接:https://pan.baidu.com/s/1mje7ZHu 密碼:ob6m
解壓后(直接右鍵X解壓并重命名击费。因?yàn)槊孢€有個(gè)文件夾,不建議用右鍵+E解壓)桦他。
將重命名的文件夾蔫巩,跟jdk放在一個(gè)父目錄,便于查找:C:\Program Files\SDK
接著配置環(huán)境變量瞬铸,我的電腦——右鍵屬性——-高級(jí)系統(tǒng)設(shè)置——-環(huán)境變量批幌。
在下面的系統(tǒng)變量(s)中础锐,新建嗓节,鍵值對(duì)如下:
name: ANDROID_HOME
key: C:\Program Files\SDK
如圖所示:
然后在path中,全局聲明一下皆警,將 ;%ANDROID_HOME%\tools 綴在最后面拦宣,前面有【;】分隔符。(注:win 10 系統(tǒng)不需要封號(hào)信姓,SDK鸵隧,JDK也是同理)。
然后運(yùn)行CMD意推,輸入$ android -h豆瘫,如果出現(xiàn)一大堆指令,說(shuō)明你的SDK安裝無(wú)誤菊值,并且環(huán)境變量配置OK外驱。
現(xiàn)在,打開SDK目錄下的SDK Manager.exe
打開界面上的Tools,選擇options腻窒,先配置國(guó)內(nèi)鏡像:
域名千萬(wàn)不要輸入http或者h(yuǎn)ttps協(xié)議前綴昵宇,誰(shuí)輸誰(shuí)哭。
下面記得勾選儿子。
回到主界面瓦哎,點(diǎn)packages再點(diǎn)reload
先勾選如下圖的三個(gè)Tools:
分別是[ Android SDK Tools,Android SDK platform-tools,Android SDK Build-tools]
別急,還沒(méi)完,下面還有一個(gè):
[SDK platform]
全部選中后蒋譬,點(diǎn)右下角 install packages 來(lái)安裝割岛,耐心等待即可。
3.4 gradle安裝(需要配置環(huán)境變量)
打開:http://services.gradle.org/distributions/
下載:gradle-4.1-bin.zip
同樣安裝在JDK,SDK的目錄下犯助,便于查找蜂桶。
同樣的配置環(huán)境變量:
GRADLE_HOME=C:\Program Files\SDK\gradle-4.1
;%GRADLE_HOME%\bin
測(cè)試命令(查看版本):gradle -v
3.基本流程
1.安裝ionic和cordova
打開Gitbash,全局安裝ionic和cordova(IONIC是UI,cordova負(fù)責(zé)打包成apk,并且可以調(diào)用原生安卓的各種API)
$ cnpm install -g ionic cordova
1
[ 2018/8/1 17點(diǎn)58分 加更 ]
驗(yàn)證 ionic 是否安裝成功
IONIC更新到 v4 了也切,后續(xù)我會(huì)體驗(yàn)一下扑媚,寫一篇新博客~
2.創(chuàng)建ionic項(xiàng)目
桌面右鍵,在此處gitbash
$ ionic start app tabs
1
耐心等待完成雷恃,在 cd 到 app 子目錄(app是你的真實(shí)項(xiàng)目目錄)疆股,然后
$ ionic serve
1
稍等片刻,瀏覽器自動(dòng)彈出預(yù)覽界面(建議電腦安裝Chrome瀏覽器)倒槐,并且支持持續(xù)熱更新(Webpack的功能)旬痹,如下圖所示:
如果做到這一步?jīng)]問(wèn)題,說(shuō)明:
1.nodejs與gitbash沒(méi)有問(wèn)題讨越。
2.ionic和cordova沒(méi)有問(wèn)題两残。
4.打包
確保SDK,JDK沒(méi)問(wèn)題以后,使用指令
$ ionic cordova build android --release
1
(如果這條命令有問(wèn)題把跨,可以去掉–release然后debug編譯人弓,編譯完成Dos會(huì)顯示apk目錄位置)
如若你聰慧的雙眼發(fā)現(xiàn)如下字眼:Build Success! 說(shuō)明你已經(jīng)成功打包了。耐心等待着逐,命令行結(jié)束會(huì)提示你apk的生成位置崔赌,如圖所示:
OK,此時(shí)你已經(jīng)有了debug的包耸别,但是這個(gè)包沒(méi)有簽名健芭,不能發(fā)布。
此時(shí)秀姐,我們應(yīng)該:
在JDK目錄下的bin文件夾下(C:\Program Files\Java\jdk1.8.0_71\bin)慈迈,先看看有沒(méi)有keytool.exe和jarsigner.exe文件,這兩個(gè)程序用于給APK簽名省有,簽名以后即可發(fā)布痒留。
.將Ionic生成的文件先命名為app.apk,然后復(fù)制一份當(dāng)前的bin目錄里锥咸,執(zhí)行命令1狭瞎,生成自己的簽名文件,名為:zhangqiang.keystrore搏予,別名也是這個(gè)熊锭,有效期20000天,僅僅在第一次生成簽名文件,以后不需要碗殷。
執(zhí)行完命令1精绎,繼續(xù)執(zhí)行命令2即可完成簽名打包。
命令1:生成簽名密鑰
/*
使用工具, 簽名:
-genkey表示構(gòu)建簽名文件
-v 顯示在dos窗口中
-alias表示簽名包的別名
-validity 簽名有效期(天)
姓名:填上锌妻,用你名字拼音全拼
城市:隨便填代乃,不填也行
國(guó)家: 隨便填,不填也行
密碼口令:敲的時(shí)候不動(dòng)仿粹,是因?yàn)楸Wo(hù)隱私搁吓,別當(dāng)做你電腦死機(jī)!
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在CMD窗口執(zhí)行如下命令吭历,輸入秘鑰確認(rèn)即可生成簽名文件 yourname.keystore 堕仔,
$ keytool -genkey -v -keystore [姓名].keystore -alias [姓名].keystore -keyalg RSA -validity 20000
輸入如圖:
(PS:真 · JAVA 密保)
此時(shí)按下回車,即可生成簽名:
如果報(bào)錯(cuò)晌区,說(shuō)明你的 CMD 不是以管理員身份打開的摩骨,請(qǐng)?jiān)诠芾韱T身份下打開。
命令2:給文件簽名
使用剛才生成的 signer 來(lái)給 app 簽名朗若,Usage:
[姓名].keystore -signedjar 簽名后的apk 簽名之前的apk 簽名包名(命令一生成的簽名文件名)
Exeample :
$ jarsigner -verbose -keystore [姓名].keystore -signedjar complete.apk app.apk [姓名].keystore
輸入前面設(shè)置的密碼恼五,即可簽名。
如上圖所示哭懈,IONIC打包的文件為app.apk,簽名后的文件為complete.apk灾馒,這時(shí)候,可以說(shuō)银伟,一個(gè)軟件就誕生啦你虹!
后續(xù)的軟件壓縮打包可以百度:jarsigner打包
5.疑難雜癥
Without ·from· option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to undefined to prevent this warning
出現(xiàn)這個(gè)提示,說(shuō)明配置不正確彤避。
5.1 文件引用路徑錯(cuò)誤
解決方法:
在“/node_modules/@ionic/app-scripts/dist/sass.js”路徑的“sass.js”文件,在postcssOptions參數(shù)中添加“from: undefined”夯辖。添加后效果如下:
var postcssOptions = {?
? ? ? ? from: undefined,?
? ? ? ? to: path_1.basename(sassConfig.outFile),?
? ? ? ? map: autoPrefixerMapOptions?
? ? };
1
2
3
4
5
5.2 安卓SDK組件缺失/缺少/不匹配
報(bào)文:
A problem occurred configuring project ‘:CordovaLib’.
You have not accepted the license agreements of the following SDK components:
[Android SDK Build-Tools 26.0.2].
原因:SDK構(gòu)建工具和platform工具不匹配琉预,或者有東西遺漏了,沒(méi)下載蒿褂。
解決:如果中途報(bào)錯(cuò)SDK出問(wèn)題圆米,請(qǐng)打開C盤/profiles/SDK/manager.exe,使用東軟的鏡像啄栓,根絕報(bào)錯(cuò)信息娄帖,來(lái)down對(duì)應(yīng)的platform或者build包。
5.3 缺少安卓構(gòu)建/打包工具
報(bào)錯(cuò)報(bào)文:
Unhandled promise rejection (rejection id: 1): CordovaError: Could not
find an installed version of Gradle either in Android Studio, or on
your system to install the gradle wrapper. Please include gradle in
your path, or install Android Studio (node:3444) [DEP0018]
DeprecationWarning: Unhandled promise rejections are deprecated. In
the future, promise rejections that are not handled will terminate the
Node.js process with a non-zero exit code.
原因:缺少安卓構(gòu)建打包工具昙楚,報(bào)文提示你可以用Android Studio近速,也可以安裝一個(gè)Gradle。
解決辦法:
去http://services.gradle.org/distributions/ 下載 gradle-4.1-bin.zip,下載完成解壓到和JDK,SDK相同的父目錄削葱,便于將來(lái)查找(C:\Program Files\gradle-4.1)
配置相應(yīng)的環(huán)境變量:
鍵:GRADLE_HOME
值:E:\software\gradle-3.0 (你的東西下載到哪奖亚,就填寫對(duì)應(yīng)的目錄)
環(huán)境變量 path 中繼續(xù)后綴
;%GRADLE_HOME%\bin (WIN7及以下系統(tǒng)注意封號(hào),WIN 10 可以忽略)
完成上述任務(wù)后析砸,重新運(yùn)行Gitbash,然后 $ ionic cordova build android ,發(fā)現(xiàn)build成功昔字,會(huì)自動(dòng)下載gradle-4.1-bin.zip (初步猜測(cè)是因?yàn)樽约旱膅radle路徑不對(duì),也可能是沒(méi)有被項(xiàng)目依賴首繁,但是項(xiàng)目在全局空間中發(fā)現(xiàn)gradle環(huán)境作郭,因此自己要下載gradle來(lái)依賴。)
5.4 在安裝弦疮,或者build 時(shí)沒(méi)有管理員權(quán)限所坯,導(dǎo)致無(wú)法寫入磁盤
解決方法: 以管理員身份運(yùn)行 CMD (commder )即可。
5.5 無(wú)法簽名
jarsigner: 無(wú)法對(duì) jar 進(jìn)行簽名: java.util.zip.ZipException: invalid entry compressed size (expected 7508 but got 7333 bytes)
解決辦法:已經(jīng)簽名過(guò)了挂捅,無(wú)需再次簽名芹助。
---------------------
作者:Tycho丶
來(lái)源:CSDN
原文:https://blog.csdn.net/qq_20264891/article/details/79319408
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接闲先!