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

上传Google Play时持续提示APK为Debug签名的问题求助

上传Google Play时提示“APK采用Debug模式签名”的问题

错误提示

您上传的APK采用Debug模式签名。您需要采用Release模式为APK签名

问题背景

第一次尝试将Flutter应用上传至Google Play商店,已按指南配置了签名证书(jks文件)、build.gradle和key.properties,执行flutter clean后运行flutter build appbundle --release成功生成app-release.aab,但上传时仍触发上述错误。

现有配置

/android/app/build.gradle

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
      keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    namespace "XXX"
    compileSdkVersion flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        applicationId "XXX"
        minSdkVersion 29 
        targetSdkVersion 34
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

   signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }
}

flutter {
    source '../..'
}

dependencies {}

/android/key.properties

storePassword=XXX
keyPassword=XXX
keyAlias=upload
storeFile=upload-keystore_CBT.jks

注:upload-keystore_CBT.jks文件位于/android目录下

已执行操作

  • flutter clean
  • flutter build appbundle --release(无报错,成功生成app-release.aab)

排查建议

  • 验证签名信息:使用jarsigner -verify -verbose -certs app-release.aab命令检查生成的AAB签名,确认签名者是你配置的Release证书,而非Android默认的Debug证书(Debug证书的别名通常为androiddebugkey)。
  • 检查keystore加载情况:在build.gradle的keystoreProperties.load后添加日志打印:println("Loaded keystore file: ${keystoreProperties['storeFile']}"),重新构建时查看控制台输出,确认keystore路径正确且文件被加载。
  • 确认storeFile路径:尝试将key.properties中的storeFile改为绝对路径(例如Windows:C:\xxx\android\upload-keystore_CBT.jks,Mac/Linux:/Users/xxx/android/upload-keystore_CBT.jks),避免相对路径解析问题。
  • 检查buildTypes是否被覆盖:确认项目中没有其他Flavor或配置重写了buildTypes.release的signingConfig,比如是否存在productFlavors中的配置覆盖了签名设置。
  • 重新生成keystore:确保你的jks文件是通过keytool命令生成的Release签名证书,而非Debug证书。
  • 彻底清理缓存:除了flutter clean,手动删除项目根目录下的.android、.gradle文件夹,以及build目录,再重新执行构建命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:24:51