在文档中,有关于签名v3的说明: https://source.android.com/security/apksigning/v3
但是当我尝试使用Build> android中的android> app签名我的应用程序时,生成签名的apk /捆绑包,我可以仅选中v1(jar签名)和v2(完整apk签名)的复选框,而v3签名则没有选项。
如何使用签名方案v3对我的应用程序签名?
谢谢。
答案 0 :(得分:2)
正如@Pierre所说,Android Studio不支持创建经过v3方案验证的释放apk。
为此,我们需要使用命令行手动创建签名的版本。
请找到创建v3方案签名构建的步骤,
选择build-tools \ 29.0.2或更高版本。
注意:您可以在SDK位置内找到build-tools文件夹。
\ Users \ AppData \ Local \ Android \ Sdk \ build-tools \ 29.0.2
Zipalign-对齐未签名的APK
zipalign -v -p 4 app-production-debug.apk my-app-unsigned-aligned.apk
注意:
app-production-debug.apk-a。通过Build-> Build Bundles(s)/ APK(s)-> Build APK(s)
从Android Studio创建的APK文件my-app-unsigned-aligned.apk-文件将在同一目录中创建(您也可以定义路径)。
Apksigner-使用私钥对APK进行签名
apksigner标志--ks release-keystore.jks --out my-app-release.apk my-app-unsigned-aligned.apk
注意: 一种。 release-keystore.jks -我们在build.gradle文件
中配置的密钥库文件 android {
signingConfigs {
production {
storeFile file('release-keystore.jks')
storePassword 'XXXX'
keyAlias = 'AAAAA'
keyPassword 'XXXX'
}
}
buildTypes {
release {
...............
signingConfig signingConfigs.production
}
}
}
b。 my-app-release.apk-签名发布版本将在同一目录中生成(您也可以定义路径)。
apksigner验证--verbose my-app-release.apk
您可以在发行版APK中看到经过验证的方案。
验证
使用v1方案(JAR签名)验证:是
使用v2方案(APK签名方案v2)验证:是
使用v3方案(APK签名方案v3)验证:是
答案 1 :(得分:0)
从今天开始,您无法使用Gradle或Android Studio的v3签名方案进行签名。
如果您希望使用v3签名方案进行签名,则需要使用apksigner
手动进行签名。
请注意,v3签名方案只是v2签名方案的扩展,除了允许旋转应用程序签名密钥外,它还允许。该功能仅在Android P设备上受支持,截至2019年底,Google Play尚不支持(我不确定其他发布平台)。
答案 2 :(得分:0)
截至今天,Android Studio 支持 v3 和 v4 以及 Android Gradle 插件 4.2 要在构建中启用这些格式中的一种或两种,请将以下属性添加到模块级 build.gradle 或 build.gradle.kts 文件中:
C++