ionic2 mac android,Ionic制作Hybrid App系列二:Mac环境下Ionic release版本APK的签名与发布...
Android應用程序簽名
在前一章節里面,通過ionic run使app成功在手機上面跑起來,并且將android-debug.apk放到手機上后發現也能正常的安裝,debug版本和release版本到底什么區別呢,這里就需要了解安卓的apk簽名:為了保證每個應用程序開發商合法ID,防止部分開放商可能通過使用相同的Package Name來混淆替換已經安裝的程序,我們需要對我們發布的APK文件進行唯一簽名,保證我們每次發布的版本的一致性(如自動更新不會因為版本不一致而無法安裝)。如果使用沒有統一簽名的debug版本進行覆蓋安裝時將會報錯,提示:應用未安裝。
進行簽名的好處都有啥呢:
應用程序升級:如果你希望用戶無縫升級到新的版本,那么你必須用同一個證書進行簽名。這是由于只有以同一個證書簽名,系統才會允許安裝升級的應用程序。如果你采用了不同的證書,那么系統會要求你的應用程序采用不同的包名稱,在這種情況下相當于安裝了一個全新的應用程序。如果想升級應用程序,簽名證書要相同,包名稱要相同!
應用程序模塊化:Android 系統可以允許同一個證書簽名的多個應用程序在一個進程里運行,系統實際把他們作為一個單個的應用程序,此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊
代碼或者數據共享:Android 提供了基于簽名的權限機制,那么一個應用程序就可以為另一個以相同證書簽名的應用程序公開自己的功能。以同一個證書對多個應用程序進行簽名,利用基于簽名的權限檢查,你就可以在應用程序間以安全的方式共享代碼和數據了。
不同的應用程序之間,想共享數據,或者共享代碼,那么要讓他們運行在同一個進程中,而且要讓他們用相同的證書簽名。
簽名使用到的工具是Keytool:keytool 是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用于(通過數字簽名)自我認證(用戶向別的用戶/服務認證自己)或數據完整性以及認證服務。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)。
首先進入到工程目錄后輸入
$ keytool -genkey -v -keystore my-release-key.keystore -alias 你的應用名稱 -keyalg RSA -keysize 2048 -validity 10000
成功生成簽名文件
發布Release版本APK
Releaese版本和Debug版本的區別:
debug簽名的應用程序不能在AndroidMarket上架銷售,它會強制你使用自己的簽名;Debug模式下簽名用的證書(默認是Eclipse/ADT和Ant編譯)自從它創建之日起,1年后就會失效。
debug.keystore在不同的機器上所生成的可能都不一樣,就意味著如果你換了機器進行apk版本升級,那么將會出現上面那種程序不能覆蓋安裝的問題,相當于軟件不具備升級功能!
使用命令ionic build android --release進行release版本的發布。在apk目錄下選中我們需要的版本
輸入命令:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore sangcan.apk sangcan
這里后面的sangcan.apk是我們的目標apk版本,這里是個人習慣將前面的目標文件重命名為sangcan.apk。而后面的sangcan則是之前在生成簽名時填寫的應用名稱。
簽名成功后可以看到成功進行覆蓋安裝
到這里Release版本的APK成功發布。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的ionic2 mac android,Ionic制作Hybrid App系列二:Mac环境下Ionic release版本APK的签名与发布...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 市场平均风险报酬率
- 下一篇: iphone悬浮球怎么设置出来