【Android】命令行jarsigner簽字和解決找不到證書鏈錯誤


1、簽名失敗

$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk qulordy
輸入密鑰庫的口令短語: 
jarsigner: 找不到 qulordy 的證書鏈。qulordy 必須引用包含專用密鑰和相應的公共密鑰證書鏈的有效密鑰庫密鑰條目。

 

2、查看幫助

$jarsigner -h
用法:jarsigner [選項] jar 文件別名(key的別名)
       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 <參數>]] ... 主類文件和構造函數參數

 

3、尋找簽名別名:

首先,在用eclipse進行導出的時候是成功的。所以嘗試重新導出應用可以看到別名,如下我的是 'qulordy key' :

 

4、重新簽名:

$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk 'qulordy key'
輸入密鑰庫的口令短語: 
   正在添加: META-INF/MANIFEST.MF
   正在添加: META-INF/QULORDY_.SF
   正在添加: META-INF/QULORDY_.RSA
  正在簽名: AndroidManifest.xml
  正在簽名: classes.dex
   正在添加: res/
   正在添加: res/drawable/
  正在簽名: res/drawable/icon.png
   正在添加: res/layout/
  正在簽名: res/layout/main.xml
  正在簽名: resources.arsc

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM