最近因為項目上線,要配合運營的童鞋們上傳各渠道apk,其中,搜狗的渠道因為遷移問題,需要給一個他們提供的空的apk簽名,然后用公司的簽名文件進行簽名
沒辦法,只能手動給apk簽名,網上搜索一片均不太完善,特總結一下成功的經驗供各位童鞋參考!
首先,相信各位童鞋都已配好java環境:
- 將要簽名的apk,簽名文件放到同一個文件夾,我這里需要簽名的apk為unsign.apk,簽名文件為sign.apk
- 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 - 根據各位童鞋的具體情況替換具體文件名或路徑,執行以下,有大部分人可能會碰到一下錯誤
jarsigner:找不到VCinemaKey.keystore的證書鏈。VCinemaKey.keystore必須引用包
各方百度,說的都不太對,其實,問題主要出現在這里jarsigner -verbose -keystore sign -signedjar sign.apk unsign.apk sign
此時的簽名文件為 sign,alias為sign,並沒有什么問題,可是大部分人,可能簽名文件名為 xxx.keystore或者其他名稱問題就在這里,使用手動簽名,必須保證簽名文件名稱和別名alias一致,這也是其他地方含糊不清的地方 - 查看alias,利用studio簽名 導入簽名文件后可以看到簽名的別名

- 修改簽名文件的名稱和別名一致,然后重新運行上述命令,簽名成功,大功告成!!
