38

我正在尝试在 Google Play 商店上传应用程序。我正在构建 .apk 并使用 Maven 对其进行签名。我已使用 maven-jarsigner-plugin 对 .apk 文件进行签名。我正在使用我使用 Eclipse 向导创建的密钥来签署另一个 Android 应用程序。我使用以下命令压缩 .apk 文件: zipalign [-f] [-v] infile.apk outfile.apk

当我尝试在 playstore 上上传应用程序时,我收到错误 You upload an APK that was signed in debug mode。您需要在发布模式下签署您的 APK。谁能告诉我如何在发布模式下签署apk?我是 Maven 新手(今天开始使用它)。谢谢

4

7 回答 7

64

更改为:signingConfig signingConfigs.release

从signingConfig 签名配置.debug

在您的 build.gradle 应用程序级别

于 2020-04-13T01:23:18.317 回答
11

我不知道你是如何在 Maven 中做到这一点的,但你需要使用发布密钥库编译你的应用程序。您可以使用 来创建一个keytool,它位于您的 Java bin 文件夹中:

$ keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000

创建它时,您必须提供两个密码,一个用于密钥库,一个用于密钥。创建密钥库后,您可以使用 Eclipse 导出向导在发布模式下编译您的应用程序。

更多详情,请参阅http://developer.android.com/tools/publishing/app-signing.html#releasemode

于 2013-05-22T00:03:44.337 回答
8

转到android/app/build.gradle

在文件末尾:

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug <==== change this to release
    }
}

结果应该是这样的:

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.release
    }
}
于 2021-01-10T17:10:10.810 回答
6

始终使用包含“release”而不是“debug”的名称和别名创建您的密钥库。如果您遇到“您上传了一个在调试模式下签名的 APK。您需要在发布模式下签名您的 APK 错误”,则可以确定您使用的是默认密钥库,即“debug.keystore”,因此在调试模式下生成 apk。

解决方案

  1. 生成新的密钥库
  2. 在 build.gradle 文件中提供参考
  3. 将构建变体更改为“发布”
  4. 建造

这应该可以解决问题。

于 2015-09-02T12:28:19.313 回答
2

我的颤振应用程序遇到了同样的问题,

将这些添加到您的 android/app/build.xml 中。摇篮:

在 android { compileSdkVersion 30 之前

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

在 defaultConfig {

}
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
于 2021-10-27T15:28:49.787 回答
1

对于颤振错误, 默认情况下颤振创建如下构建类型

  buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
    }
}

您应该更改signingconfig 行

        signingConfig signingConfigs.release
于 2022-01-03T06:02:13.710 回答
-1

使用 -genkeypair 而不是 -genkey 为我解决了这个问题。

所以:keytool -genkeypair -keystore name.keystore -alias nameapp -keyalg RSA

于 2013-09-19T16:04:01.133 回答