You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

minSdkVersion≥24时如何强制Android Studio或apksigner使用v1签名

强制开启v1签名的解决方案

1. Gradle 配置(适配Android Studio打包流程)

直接在模块级build.gradle的签名配置块中明确强制开启v1签名,不受minSdkVersion限制,配置示例如下:

android {
    signingConfigs {
        release {
            storeFile file("你的密钥文件路径.jks")
            storePassword "你的密钥库密码"
            keyAlias "你的密钥别名"
            keyPassword "你的密钥密码"
            // 核心配置:强制开启v1签名
            v1SigningEnabled true
            // 可同时开启v2、v3签名,不影响v1生效
            v2SigningEnabled true
            v3SigningEnabled true
        }
    }

    buildTypes {
        release {
            // 确认对应构建类型使用了配置好的签名规则
            signingConfig signingConfigs.release
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

配置后注意事项:

  • 先执行clean清理项目缓存,再进行打包,避免增量打包导致配置不生效
  • 多风味构建场景下,需确认所有风味的签名配置都没有覆盖关闭v1签名的设置

2. apksigner 手动签名的正确参数

你之前使用的--max-sdk-version 23参数仅限制签名适配的最高系统版本,和是否开启v1签名无关,无需添加该参数。正确的签名命令如下:

apksigner sign --ks 你的密钥文件路径.jks \
--ks-key-alias 你的密钥别名 \
--v1-signing-enabled true \
--v2-signing-enabled true \
--out 签名完成后输出的APK路径.apk \
待签名的原始APK路径.apk

签名完成后执行校验命令确认v1生效:
apksigner verify -v 签名完成的APK路径.apk
输出中出现Verified using v1 scheme (JAR signing): true即为配置成功。

常见失效原因排查

  • 检查是否有构建插件、多风味配置动态覆盖了minSdkVersion,同时默认关闭了v1签名
  • 不要使用AAB转APK流程的默认签名,部分转码工具会自动忽略v1签名,需手动指定签名参数
  • 若使用第三方多渠道打包工具,需确认工具配置中没有默认关闭v1签名的选项

内容的提问来源于stack exchange,提问作者mahdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:45:02