文章目錄
- 如何檢視簽名資訊
- 已有簽名檔案時
- 隻有apk時
- jarsigner對未簽名的apk簽名
- 簽名不對,請檢查簽名是否與開放平台上填寫的一緻
- 使用 re-sign.jar 重新簽名
如何檢視簽名資訊
已有簽名檔案時
在簽名檔案所在檔案夾打開cmd
輸入以下指令即可檢視簽名資訊内容
keytool -v -list -keystore MyAppKey.jks
預設的簽名檔案是
debug.keystore
,位置在
$HOME/.android/debug.keystore
,使用上面的指令時,讓你輸入密碼,預設的可以直接按回車,或者輸入
android
隻有apk時
我們把 apk 放在D盤 test 檔案夾下
在cmd輸入以下指令即可檢視簽名資訊裡的内容
jarsigner -verify -verbose -certs D:\test\qunar.apk
jarsigner對未簽名的apk簽名
上傳一些應用市場時,可能需要應用簽名認領,例如上傳魅族市場時,應用認領說明如下:
開發者應用認領說明
Flyme應用中心應用認領,采用Android的apk安裝包簽名機制來完成。如果你不清楚簽名是什麼,請聯系開發人員協助您。
在Android平台釋出應用程式之前,必須經過一個簽名流程。現在您的密鑰就是您的身份證明,您所要做的就是使用您的密鑰,将我們提供給您的一款未經過簽名的apk包簽名後,發送給我們。
我們要做的就是,給市場提供的一個未經簽名的apk重新簽名。用的簽名檔案就是我們要上傳的apk的簽名檔案
重新簽名要用到 jarsigner 指令,使用如下:
指令格式:
jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]
指令格式及參數意義:
-verbose -> 輸出簽名過程的詳細資訊
-keystore [keystorePath] -> 密鑰的庫的位置
-signedjar [apkOut] -> 簽名後的輸出檔案名
[apkIn] -> 待簽名的檔案名
[alias] -> 證書别名
示範一下:
在桌面建立一個檔案夾 Demo,裡面放上 未簽名的apk 和 簽名檔案
在目前檔案夾中執行 cmd
由于 cmd 指令是在目前檔案夾中執行的,是以簽名檔案路徑不用寫,直接寫簽名檔案名稱
待簽名 和 簽名後輸出檔案名 都在目前路徑,是以直接寫名字
我的簽名檔案的别名是 Yi
jarsigner -verbose -keystore MyAppKey.jks -signedjar test-signed.apk test-unsigned.apk Yi
按Enter鍵後,提示輸入密碼短語,輸入是看不見的,輸完按回車即可
結束後,Demo 檔案中多了簽好名的apk了
簽名不對,請檢查簽名是否與開放平台上填寫的一緻
檢視我的另一篇文章:傳送門
使用 re-sign.jar 重新簽名
re-sign.jar 工具可以将一個 apk 檔案重簽名,使用的是 android 自帶的 debug 簽名。可以通過re-sign.jar 工具,獲得app的 packageName 和 main activity。用于自動化測試
下載下傳位址
下載下傳re-sign.jar 提取碼:esmq
使用
1、運作報ANDROID_HOME錯誤
當打開re-sign.jar時彈出以下提示時
解決辦法
建立環境變量
ANDROID_HOME
,指向sdk安裝路徑
然後編輯path,新增ANDROID_HOME
具體新增環境變量的方法可以參考配置Gradle環境變量
再次輕按兩下運作re-sign.jar後,沒有了剛才的提示,
2、将要重新簽名的apk拖到這裡,彈出以下
ERROR:Cannot run program "xx/zipalign"
![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20190919164618530.png
解決辦法
在第一步下載下傳的檔案中有一個zipalign,放到提示的路徑下即可
3、等一會兒,成功會彈出以下彈框
注意這裡顯示了包名和啟動Activity,記住這些資訊,自動化測試會用到
我們可以對比下前後簽名資訊
如何使用CMD檢視簽名資訊