------------------在網(wǎng)上找了很多資料根暑,綜合整理出了最完整的ionic打包上架舵抹。
APP開發(fā)完成后都需要做的就是打包上架榜贴,這里列舉三種打包方法矢赁,著重講解官網(wǎng)Android打包方式(結(jié)合android的打包)進(jìn)行最詳細(xì)的講解瑞佩。【學(xué)不會(huì)你可以打死我】
打包執(zhí)行命令:(ionic其實(shí)可以省略,尾部可以加--save)
1坯台、ionic cordova platform remove android (移除平臺(tái))
2炬丸、ionic cordova platform add android@6.2.2? (添加平臺(tái))【建議6.2.2? 對(duì)應(yīng)的是android-25 SDK】
3、ionic cordova build android --prod (測試版)? ? android-debug.apk【默認(rèn)是這個(gè)版本】? ? ? ? ? ? ? ionic cordova build android --prod --release(正式未簽名版) 打包后出現(xiàn) android-release-unsigned.apk?
? ? ? ionic cordova build android --prod --release(正式簽名版) 打包后出現(xiàn) android-release.apk【前提是創(chuàng)建了密鑰 并配置了release.properties文件】
加完平臺(tái)后包執(zhí)行Android打包 完成后會(huì)顯示: Building successful
IOS的打包上架可參考blog.csdn.net/liujiawei00/article/details/73822707。(這里不詳細(xì)講解)
使用webStorm工具打包簽名APP?www.reibang.com/p/dfd98ad47af1??【本人沒試過】
方法一:(未打包好稠炬,想直接打包簽名的焕阿。)
打包前注意config.xml文件需要進(jìn)行包名的更改(更改成唯一標(biāo)識(shí))【為打包簽名后能正常安裝到手機(jī)】
項(xiàng)目目錄下執(zhí)行:
1、先移除平臺(tái)防止錯(cuò)誤:ionic cordova platform remove android --save? 【ionic 不要也行】(如果成功首启,以后直接打包覆蓋平臺(tái)即可)
2暮屡、再添加平臺(tái):ionic cordova platform add android@6.2.2 --save
3、再制作密鑰(隨便在哪制作):keytool -genkey -v?-keystore lappfront.keystore -alias?lappfront.keystore -keyalg RSA (-keysize 2048) -validity 20000
4毅桃、制作完生成的lappfront.store(我這里是lappfront) 移動(dòng)到項(xiàng)目生成的platform >android目錄下【和下面的release-signing.properties文件在同目錄】
4褒纲、再platform >android文件夾下創(chuàng)建release-signing.properties文件(內(nèi)容如下):
5、最后如下: 【打包正式的話就執(zhí)行 ionic cordova build android --prod --release】【debug.apk的話如下圖】
經(jīng)過上面幾步的操作钥飞,ionic打包簽名APK:android-release.apk便已完成莺掠。
【最后就是優(yōu)化APK,優(yōu)化步驟下面有 (不優(yōu)化也可以) 上線就行了】
方法二:要給未簽名的apk重新簽名读宙,需要用到j(luò)arsigner工具:
1彻秆、已經(jīng)執(zhí)行了 ionic cordova build android --prod --release
打包成功的前提下出現(xiàn):android-release-unsigned.apk【需要轉(zhuǎn)成簽名APK】
1)、創(chuàng)建密鑰:同上 【這次在打包好的apk目錄下執(zhí)行】
2)结闸、密鑰弄好后唇兑,cd到項(xiàng)目的apk 目錄 執(zhí)行:【根據(jù)你要的app名稱進(jìn)行下面命令】
jarsigner -verbose -keystore my-release-key.keystore -storepass 123456 -signedjar lvshi.apk -digestalg SHA1 -sigalg MD5withRSA android-release-unsigned.apk alias_name 【這里要注意這些參數(shù)的意思,和密鑰設(shè)置的匹配就行】
這里面桦锄,你的apk地址扎附,要么是絕對(duì)地址,要么是你工程內(nèi)的相對(duì)地址结耀,如果地址不對(duì)留夜,就會(huì)出現(xiàn)下面的錯(cuò)誤【所以直接直接放一起,不然要找路徑】
【結(jié)尾是jar 已簽名饼记,出現(xiàn)新的簽名apk】
jarsigner是JDK自帶的簽名工具香伴,我們需要將release版本的apk文件利用keystore文件進(jìn)行加密慰枕,也就是簽名具则,簽名之后的apk才能發(fā)布到應(yīng)用市場。
【項(xiàng)目apk的 目錄下具帮,創(chuàng)建密鑰并簽名如下】
一博肋、keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
二、jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name【這里用下面MD5那種的簽名】
SHA-1與MD5的比較:【都是摘要加密算法】
http://blog.csdn.net/lplj717/article/details/51828692【加密算法中BASE64蜂厅、MD5匪凡、SHA、HMAC等之間的區(qū)別】
因?yàn)槎呔蒑D4導(dǎo)出掘猿,SHA-1和MD5彼此很相似病游。相應(yīng)的,他們的強(qiáng)度和其他特性也是相似,但還有以下幾點(diǎn)不同:
l對(duì)強(qiáng)行攻擊的安全性:最顯著和最重要的區(qū)別是SHA-1摘要比MD5摘要長32 位衬衬。使用強(qiáng)行技術(shù)买猖,產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定報(bào)摘要的難度對(duì)MD5是2^128數(shù)量級(jí)的操作,而對(duì)SHA-1則是2^160數(shù)量級(jí)的操作滋尉。這樣玉控,SHA-1對(duì)強(qiáng)行攻擊有更大的強(qiáng)度。
l 對(duì)密碼分析的安全性:由于MD5的設(shè)計(jì)狮惜,易受密碼分析的攻擊高诺,SHA-1顯得不易受這樣的攻擊。
l 速度:在相同的硬件上碾篡,SHA-1的運(yùn)行速度比MD5慢虱而。
三、參考http://e2web.cn/2016/12/23/
這種打包完成后需要優(yōu)化 【雖然你在build的時(shí)候--prod 了耽梅,但這里一樣可以再優(yōu)化】:
cd到下面目錄(針對(duì)你apk的版本):
這里面apk的路徑最好是絕對(duì)路徑薛窥,要不然也會(huì)報(bào)錯(cuò)。
執(zhí)行:zipalign -v 4 E:\my_project\lappfront\platforms\android\build\outputs\apk\lvshi.apk E:\my_project\lappfront\platforms\android\build\outputs\apk\lvshi_fabu.apk
【到此為止眼姐,你還剩下最后一步工作诅迷,如果想要真正的發(fā)布軟件,你需要將之前生成的簽名文件(.keystore)放到一個(gè)安全的地方众旗,要不然你上傳到商店后就無法對(duì)這個(gè)軟件進(jìn)行升級(jí)罢杉。】