重簽名
前言:當我們做自動化測試時候,特別是黑盒測試,因爲apk是開發編寫的,apk的簽名和我們測試程序的簽名不一致,當我們使用robotium測試框架測試,會出現測試失敗。故而我們必須對待測apk進行重簽名
一、刪除待測apk簽名文件
1.將待測apk後綴名字改爲zip,如:talkback_leelen.apk,改爲talkback_leelen.zip
2.刪除掉簽名文件META-INF,具體步驟:選擇talkback-leelen.zip,後,使用WinRAR打開(其他解壓工具打開也一樣),然後選擇根目錄下的META-INF文件夾,刪除掉整個文件夾(我看到有些網友是刪掉META-INF文件夾裏除MANIFEST.MF以外的東西,我試過,但出了點問題,所以建議你們還是和我一樣刪除整個文件夾,簡單利落)
3,將無簽名的待測apk後綴改回.apk
二、將自己eclipse的簽名文件和無簽名的待測apk放在同一目錄下
1.查找自己eclipse簽名文件,詳細步驟:1.打開eclipse-Windows-preferences,在preferences界面選擇Android-build後看到default debug keystore(默認調試密鑰存儲庫),其對應的文本框中就是簽名文件及路徑,如下圖,我的路徑是:D:\adt-bundle-windows-x86-20140702\adt-bundle-windows-x86-20140702\sdk\.android,而簽名文件就是debug.keystore
2.複製eclipse的簽名文件到相應的目錄或文件夾下,必須和待測的apk(無簽名),放在一起,如放在D:/test 目錄下
三、輸入重簽名命令,進行重簽名(重要)
1.進入到D:/test,在上方導航輸入框輸入cmd後回車,進入到cmd命令界面,如下圖:
2.在cmd命令界面輸入重簽名命令,jarsigner -verbose -keystore debug.keystore(簽名文件,可按需替換) -storepass android -signedjar leelen_singer.apk(簽名後的apk名,可修改) -digestalg SHA1 -sigalg MD5withRSA talkback_leelen.apk androiddebugkey 後回車,
系統自動執行,
簽名成功後,在D:/test就能看的新生成的重簽名包
命令詳解:jarsigner 是Java的簽名工具 ; verbose 顯示詳細信息
keystore 簽名文件 ;storepass android表示Android指定密碼庫密碼
signedjar 指定簽名後的apk 名; -digestalg SHA1 -sigalg MD5withRSA 算法和簽名算法的相關參數
androiddebugkey 祕鑰