編輯:Android開發實例
最近公司的一款產品提交國內市場,發現有些國內市場提示需要進行應用認領。原因就是別人(或者市場抓取)已經在我們之前將這個應用提交到了該市場。認領成功後,這個應用就重回你的懷抱了,其實認領很簡單,這裡講到的自然是對未簽名的包進行簽名。由於這樣的操作細小瑣屑,這樣更需要記錄一下,免得以後麻煩。
如何認領
1.一般的就是市場提供一個未簽名的apk包,認領方進行簽名後,上傳即可認領成功。
2.另一種就是提供公司證明,這個我們不講,也沒什麼可以講。
通常情況下認領都會有對一個未簽名的apk包簽名認證這種方式,因為簽名是軟件發布商所獨有的,通過對比測試需認領的包的簽名和剛簽過名的apk包是否一致,如果一致就認領成功,否則失敗。
對未簽名包簽名
代碼如下:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your_keystore -storepass your_storepass -keypass your_keypass -signedjar path_of_signed_apk path_of_unsigned_apk your_alias
需要替換的值
1.your_key_store keystore文件路徑
2.your_storepass store密碼
3.your_keypass key密碼
4.path_of_signed_apk 簽名後apk保存的目錄
5.path_of_unsigned_apk 待簽名的apk包
6.your_alias keystore中的別名
注意上面的簽名算法sigalg 使用SHA1withRSA或者MD5withRSA都可以。
驗證簽名
代碼如下:
jarsigner -verify -certs -verbose your_app.apk
比如我們驗證百度金融的apk,會得到類似這樣的結果
代碼如下:
19:23 $ jarsigner -verify -certs -verbose BaiduFinance.apk | more
s 61679 Fri Nov 14 19:50:16 CST 2014 META-INF/MANIFEST.MF
X.509, CN=Baidu, OU=Baidu Inc., O=Baidu Inc., L=Beijing, ST=Beijing, C=CN
[certificate is valid from 12/6/13 10:19 AM to 11/24/63 10:19 AM]
[CertPath not validated: Path does not chain with any of the trust anchors]
61800 Fri Nov 14 19:50:16 CST 2014 META-INF/MCO_BAID.SF
936 Fri Nov 14 19:50:16 CST 2014 META-INF/MCO_BAID.RSA
sm 2304 Fri Nov 14 19:49:32 CST 2014 assets/mean/data_mean_24_bank_card
疑難問題
代碼如下:
No -tsa or -tsacert is provided and this jar is not timestamped
在簽名時加入下面的選項
代碼如下:
jarsigner -tsa http://timestamp.digicert.com
Windows無法打開文件
有些Windows工具無法打開簽名後的apk,如果你的簽名沒有錯誤,並且驗證過,這種情況請忽略。
簽名認領失敗
如果簽名認領失敗的話,請檢查目前線上的包是否進行了二次打包被別人篡改了簽名,如果是的話,需要進行商務上的溝通來解決了。
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
本文首先解釋一下handler是用來干嘛的,然後通過例子介紹其在多線程中的應用。 什麼是Handler handler通俗一點講就是用來在各個進程之間發送數據的處
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放