通過android studio工具欄的Build -> Build Bundle(s)/APK(s) -> Build APK(s)得到一個app-release-unsigned.apk,安裝此apk會報下面截圖錯誤
按照提示是由於apk中沒有簽名文件,解壓並比較該apk和正常可安裝apk可以看出確實缺少CERT.RSA以及CERT.SF文件。
簽名文件可以在java的bin目錄通過keytool生成,也可以通過android studio自帶的工具生成。
手動通過Build ->Generate Signed Bundle or APK ->APK 然後選擇key password以及alis是可以正常安裝,但是感覺有些麻煩。
問題就出在自動構建apk流程上,android官網提到,除非您明確定義發佈 Build 的簽名配置,否則 Gradle 不會爲該 Build 的 APK 簽名。要使用 Gradle 構建配置爲您的發佈 Build 類型手動配置簽名,簽名配置添加到模塊級 build.gradle
文件中。
...
android {
...
defaultConfig {...}
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
關鍵點就在於buildTypes的release版本中知名簽名配置:signingConfig signingConfigs.release
配置完簽名信息後再次Build -> Build Bundle(s)/APK(s) -> Build APK(s)得到可以正常安裝的app-release.apk。