如何使用 build.gradle 文件中的 V1(Jar 签名)或 V2(完整 APK 签名)

Posted

技术标签:

【中文标题】如何使用 build.gradle 文件中的 V1(Jar 签名)或 V2(完整 APK 签名)【英文标题】:How to use V1 (Jar signature) or V2 (Full APK signature) from build.gradle file 【发布时间】:2020-01-16 11:43:49 【问题描述】:

我的 gradle 文件中有这个:

android 
    signingConfigs 
        mySigningConfig 
            keyAlias 'theAlias'
            keyPassword 'thePassword'
            storeFile file('theKeystore.jks')
            storePassword 'thePassword'
        
    
    ...
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.mySigningConfig
        
    
    ...

然后,当我生成我的发布 APK 时,我只需转到 Build -> Build Bundle(s) / APK(s) -> Build APK(s) 并创建 APK。不像我去Build -> Generate Signed Bundle / APK,它会提示我:

我的问题是,我当前的 gradle 文件使用什么版本的签名生成?是V1还是V2?如何修改我的 gradle 文件,以便它专门使用 V1 或 V2 构建?

【问题讨论】:

【参考方案1】:

找到了!我已经像这样调整了我的 gradle 文件:

signingConfigs 
    mySigningConfig 
        keyAlias 'theAlias'
        keyPassword 'thePassword'
        storeFile file('theKeystore.jks')
        storePassword 'thePassword'
        v1SigningEnabled true
        v2SigningEnabled true
    

参考:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.SigningConfig.html

【讨论】:

以上是关于如何使用 build.gradle 文件中的 V1(Jar 签名)或 V2(完整 APK 签名)的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 build.gradle 中的任务

gradle中的build script详解

如何在 build.gradle 文件中设置属性以在 Java 中访问该属性

如何调试 Gradle build.gradle 文件(在调试器中,带有断点)?

如何在build.gradle之外声明存储库详细信息

项目中的 build.gradle 与应用程序中的 build.gradle