ionic2完整-簽名android和ios App打包上架

ionic2完整-簽名android和ios App打包上架

APP開發完成後都需要做的就是打包上架,這裡列舉三種打包方法,著重講解官網Android打包方式(結合android的打包)進行最詳細的講解。【學不會你可以打死我】

打包執行命令:(ionic其實可以省略,尾部可以加–save)

1、ionic cordova platform remove android (移除平臺)

2、ionic cordova platform add [email protected] (新增平臺)【建議6.2.2
對應的是android-25 SDK】

3、ionic cordova build android –prod (測試版)
android-debug.apk【預設是這個版本】 ionic cordova build android
–prod –release(正式未簽名版) 打包後出現 android-release-unsigned.apk

4、ionic cordova build android –prod –release(正式簽名版) 打包後出現
android-release.apk【前提是建立了金鑰 並配置了release.properties檔案】

加完平臺後包執行Android打包 完成後會顯示: Building successful

**IOS的打包上架可參考blog.csdn.net/liujiawei00/article/details/73822707。(這裡不詳細講解)
使用webStorm工具打包簽名APP www.jianshu.com/p/dfd98ad47af1 【本人沒試過】
方法一:(未打包好,想直接打包簽名的。)

專案目錄下執行:

1、先移除平臺防止錯誤:ionic cordova platform remove android –save 【ionic
不要也行】(如果成功,以後直接打包覆蓋平臺即可)

2、再新增平臺:ionic cordova platform add [email protected] –save

3、再製作金鑰(隨便在哪製作):keytool -genkey -v -keystore lappfront.keystore -alias
lappfront.keystore -keyalg RSA (-keysize 2048) -validity 20000

這裡寫圖片描述
4、製作完生成的lappfront.store(我這裡是lappfront) 移動到專案生成的platform >android目錄下【和下面的release-signing.properties檔案在同目錄】

4、再platform >android資料夾下建立release-signing.properties檔案(內容如下):
這裡寫圖片描述
5、最後如下: 【打包正式的話就執行 ionic cordova build android –prod –release】【debug.apk的話如下圖】
這裡寫圖片描述

經過上面幾步的操作,ionic打包簽名APK:android-release.apk便已完成。

【最後就是優化APK,優化步驟下面有 (不優化也可以) 上線就行了】

方法二:要給未簽名的apk重新簽名,需要用到jarsigner工具:

1、已經執行了 ionic cordova build android –prod –release

打包成功的前提下出現:android-release-unsigned.apk【需要轉成簽名APK】

1)、建立金鑰:同上 【這次在打包好的apk目錄下執行】

2)、金鑰弄好後,cd到專案的apk 目錄 執行:【根據你要的app名稱進行下面命令】

jarsigner -verbose -keystore my-release-key.keystore -storepass 123456
-signedjar lvshi.apk -digestalg SHA1 -sigalg MD5withRSA android-release-unsigned.apk alias_name 【這裡要注意這些引數的意思,和金鑰設定的匹配就行】
這裡寫圖片描述
這裡面,你的apk地址,要麼是絕對地址,要麼是你工程內的相對地址,如果地址不對,就會出現下面的錯誤【所以直接直接放一起,不然要找路徑】

這裡寫圖片描述
這裡寫圖片描述
【結尾是jar 已簽名,出現新的簽名apk】

jarsigner是JDK自帶的簽名工具,我們需要將release版本的apk檔案利用keystore檔案進行加密,也就是簽名,簽名之後的apk才能釋出到應用市場。

【專案apk的 目錄下,建立金鑰並簽名如下】

一、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等之間的區別】

因為二者均由MD4匯出,SHA-1和MD5彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:

l對強行攻擊的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32
位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對MD5是2^128數量級的操作,而對SHA-1則是2^160數量級的操作。這樣,SHA-1對強行攻擊有更大的強度。

l 對密碼分析的安全性:由於MD5的設計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。

l 速度:在相同的硬體上,SHA-1的執行速度比MD5慢。

三、參考http://e2web.cn/2016/12/23/
這裡寫圖片描述

這種打包完成後需要優化 【雖然你在build的時候–prod 了,但這裡一樣可以再優化】:

cd到下面目錄(針對你apk的版本):
這裡寫圖片描述
這裡寫圖片描述

這裡面apk的路徑最好是絕對路徑,要不然也會報錯。

執行: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

【到此為止,你還剩下最後一步工作,如果想要真正的釋出軟體,你需要將之前生成的簽名檔案(.keystore)放到一個安全的地方,要不然你上傳到商店後就無法對這個軟體進行升級。】