Android不容許沒有簽名的apk安裝到手機上,應用的簽名相似於應用的身份證android
簽名更大的做用是爲了保護版權,若是應用的包名相同而簽名不一致,則沒法覆蓋安裝,必須先卸載再安裝工具
其中
密鑰發佈組織單元
和密鑰發佈組織
不必定要填寫,其餘的要填寫測試
爲了拯救糾正症患者,在這裏附上簽名的示例ui
android {
signingConfigs {
release {
keyAlias '密鑰別稱'
keyPassword '密鑰密碼'
storeFile file('E:/MySign.jks')
storePassword '密鑰庫密碼'
}
debug {
keyAlias '密鑰別稱'
keyPassword '密鑰密碼'
storeFile file('E:/MySign.jks')
storePassword '密鑰庫密碼'
}
}
buildTypes {
release {
// 正式環境簽名
signingConfig signingConfigs.release
}
debug {
// 開發環境簽名
signingConfig signingConfigs.debug
}
}
}
複製代碼
這裏重點說一下 debug 簽名,若是沒有指定簽名則默認使用系統自動生成的 debug 簽名,每臺電腦生成的簽名文件不會相同,由於我測試過用其餘同事的手機覆蓋安裝應用,卻提示要先卸載後才能安裝spa
打開 cmd 命令行,輸入如下指令:命令行
keytool -list -v -keystore 簽名文件地址
複製代碼
輸入密碼,在命令行窗口是看不到輸入的密碼,因此只管輸入以後回車便可debug
Android Debug的簽名文件在如下的路徑,密鑰庫密碼爲:androidcode
C:\Users\電腦當前用戶名\.android\debug.keystore
複製代碼
在 cmd 命令行中輸入cdn
jarsigner -verify -verbose -certs apk文件地址
複製代碼
正確的簽名,證書到期日期爲約定有效期後的日期blog
X.509, CN=HJQ, L=guangdong, ST=shantou, C=CN
[證書的有效期爲17-3-30 下午4:43至67-3-18 下午4:43]
[CertPath 未驗證: Path does not chain with any of the trust anchors]
s = 已驗證簽名
m = 在清單中列出條目
k = 在密鑰庫中至少找到了一個證書
i = 在身份做用域內至少找到了一個證書
jar 已驗證。
警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。若是沒有時間戳, 則在簽名者證書的到期日期 (2067-03-1
8) 或之後的任何撤銷日期以後, 用戶可能沒法驗證此 jar。
複製代碼
debug簽名信息,有效期大約爲30年
X.509, C=US, O=Android, CN=Android Debug
[證書的有效期爲16-11-22 下午6:15至46-11-15 下午6:15]
[CertPath 未驗證: Path does not chain with any of the trust anchors]
s = 已驗證簽名
m = 在清單中列出條目
k = 在密鑰庫中至少找到了一個證書
i = 在身份做用域內至少找到了一個證書
jar 已驗證。
警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。若是沒有時間戳, 則在簽名者證書的到期日期 (2046-11-1
5) 或之後的任何撤銷日期以後, 用戶可能沒法驗證此 jar。
複製代碼
簽名不完整,未簽名或簽名錯誤
s = 已驗證簽名
m = 在清單中列出條目
k = 在密鑰庫中至少找到了一個證書
i = 在身份做用域內至少找到了一個證書
jar 未簽名。(缺乏簽名或沒法解析簽名)
複製代碼
能夠用 360 提供的簽名工具進行簽名,能夠到 360 官網進行下載或者 QQ羣 78797078 中下載