1. 程式人生 > >Android簽名警告提示-tsa或-tsacert此jar沒有時間戳無法安裝

Android簽名警告提示-tsa或-tsacert此jar沒有時間戳無法安裝

最近用工具發現在編譯之後簽名總提示警告導致APK無法安裝的問題

以前用一直麼有這個問題好像是JDK7的原因吧,後來發現在簽名的時候可以給他一個時間戳的選項

jarsigner -tsa https://timestamp.geotrust.com/tsa -keystore aaaa.keystore

在處理安裝失敗的時候在加上-digestalg SHA1 -sigalg MD5withRSA這句話

最後完整的:

jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore new.keystore -keypass coo -storepass coo -signedjar %1\sign.apk %1\tmp_.apk new.keystore
del %1\tmp_.apk

pause

上面命令是我批處理裡面的命令可以參考一下

正常命令如下

jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore new.keystore -keypass coo -storepass coo -signedjar signed.apk sign.apk new.keystore

signed.apk是簽名之後生成的檔案

sign.apk是沒簽名之前

大家可以看下

jarsigner用法 [選項] jar 檔案別名

       jarsigner -verify [選項

] jar 檔案

[-keystore <url>]           金鑰庫位置

[-storepass <口令>]         用於金鑰庫完整性的口令

[-storetype <型別>]         金鑰庫型別

[-keypass <口令>]           專用金鑰的口令(如果不同)

[-sigfile <檔案>]           .SF/.DSA 檔案的名稱

[-signedjar <檔案>]         已簽名的 JAR 檔案的名稱

[-digestalg <演算法>]    

摘要演算法的名稱

[-sigalg <演算法>]       簽名演算法的名稱

[-verify]                   驗證已簽名的 JAR 檔案

[-verbose]                  簽名/驗證時輸出詳細資訊

[-certs]                    輸出詳細資訊和驗證時顯示證書

[-tsa <url>]                時間戳機構的位置

[-tsacert <別名>]           時間戳機構的公共金鑰證書

[-altsigner <>]           替代的簽名機制的類名

[-altsignerpath <路徑列表>] 替代的簽名機制的位置

[-internalsf]               在簽名塊內包含 .SF 檔案

[-sectionsonly]             不計算整個清單的雜湊

[-protected]                金鑰庫已保護驗證路徑

[-providerName <名稱>]      提供者名稱

[-providerClass <>        加密服務提供者的名稱

[-providerArg <引數>]] ... 主類檔案和建構函式引數