android 如何使用“APK签名方案v3和v4”对我的应用进行签名?

chy5wohz  于 2023-02-10  发布在  Android
关注(0)|答案(3)|浏览(907)

在文档中,有关于签名v3和v4的解释:https://source.android.com/security/apksigning/v3
但当我尝试在android studio中使用Build〉Generate signed apk/bundle对我的应用进行签名时,我只能选中v1(jar签名)和v2(完整apk签名)的复选框,而没有v3签名的选项。
如何使用签名方案v3和v4对我的App进行签名?
谢谢你。

46scxncf

46scxncf1#

使用命令行手动创建签名的生成。
请查找创建v3和v4方案签名构建的步骤,
1.选择build-tools\30. 0. 0或更高版本。
注意:您可以在SDK位置中找到build-tools文件夹。

  • \用户\应用数据\本地\Android\SDK\构建工具\30.0.0 *
  1. Zipalign-对齐无符号APK
    zipalign-v-p 4应用程序生产调试. apk我的应用程序未签名对齐. apk
    注:
    app-production-debug. apk-您通过构建-〉构建捆绑包/APK-〉构建APK从Android studio创建的. apk文件
    my-app-unsigned-aligned. apk-该文件将在同一目录中创建(您也可以定义路径)。
  2. Apksigner-使用您的私钥签署您的APK
    apk签名者签名--ks发布密钥库. jks--输出我的应用程序发布. apk我的应用程序未签名对齐. 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-将在同一目录中生成签名的发布版本(您也可以定义路径)。
1.验证:
apksigner验证--详细的我的应用程序版本. apk
更新以验证v4:
apksigner验证-v-v4-签名文件我的应用程序版本. apk. idsig我的应用程序版本. apk
1.你可以看到在发布版apk中验证的方案。
验证
使用v1方案验证(JAR签名):真
使用v2方案验证(APK签名方案v2):真
使用v3方案验证(APK签名方案v3):真
使用v4方案验证(APK签名方案v4):真

zaqlnxep

zaqlnxep2#

从今天起,Android Studio支持带Android Gradle插件4.2的版本3和版本4要在构建中启用其中一种或两种格式,请将以下属性添加到模块级build.gradle或build.gradle.kts文件:

android {
   ...
   signingConfigs {
      config {
          ...
          enableV3Signing = true
          enableV4Signing = true
      }
   }
}
xmd2e60i

xmd2e60i3#

您可以在签名配置中使用v1SigningEnabled和v2SigningEnabled

signingConfigs {
    release {
        storeFile file("$rootDir/keystore/demo.jks")
        storePassword ""
        keyAlias ""
        keyPassword ""
        v1SigningEnabled false
        v2SigningEnabled true
    }
}

相关问题