1. 程式人生 > >手把手,教你怎樣用命令列給apk簽名

手把手,教你怎樣用命令列給apk簽名

        最近因為專案上線,要配合運營的童鞋們上傳各渠道apk,其中,搜狗的渠道因為遷移問題,需要給一個他們提供的空的apk簽名,然後用公司的簽名檔案進行簽名

沒辦法,只能手動給apk簽名,網上搜索一片均不太完善,特總結一下成功的經驗供各位童鞋參考!         首先,相信各位童鞋都已配好java環境:
  1.     將要簽名的apk,簽名檔案放到同一個資料夾,我這裡需要簽名的apk為unsign.apk,簽名檔案為sign.apk
  2.         cd到此目錄下,輸入
    jarsigner -verbose -keystore sign -signedjar sign.apk unsign.apk sign
    解釋一下:
    jarsigner 簽名命令 java/bin目錄下的一個簽名工具
    -verbose 輸出簽名的詳細資訊         -keystore 金鑰庫位置  後面跟簽名檔案路徑,因為現在在同一個資料夾下,只需要輸入檔名稱即可        -signedjar sign.apk    unsign.apk    sign    正式簽名,三個引數中依次為簽名後產生的檔案sign.apk,要簽名的檔案unsign.apk和簽名檔案的別名key alias
  3. 根據各位童鞋的具體情況替換具體檔名或路徑,執行以下,有大部分人可能會碰到一下錯誤
    1. jarsigner
      :找不到VCinemaKey.keystore的證書鏈。VCinemaKey.keystore必須引用包
    各方百度,說的都不太對,其實,問題主要出現在這裡
    jarsigner -verbose -keystore sign -signedjar sign.apk unsign.apk sign
    此時的簽名檔案為sign,alias為sign,並沒有什麼問題,可是大部分人,可能簽名檔名為  xxx.keystore或者其他名稱 問題就在這裡,使用手動簽名,必須保證簽名檔名稱和別名alias一致,這也是其他地方含糊不清的地方
  4. 檢視alias,利用studio簽名 匯入簽名檔案後可以看到簽名的別名
  5. 修改簽名檔案的名稱和別名一致,然後重新執行上述命令,簽名成功,大功告成!!