您上传了以调试模式签名的APK。您需要在发布模式错误中签署APK

时间:2013-05-21 23:42:07

标签: android maven google-play jarsigner

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

当我尝试将该应用程序上传到Playstore时,我收到错误您上传了一个以调试模式签名的APK。您需要在发布模式下签署APK。任何人都可以告诉我如何在发布模式下签署apk?我是Maven的新手(今天开始使用它)。 感谢

5 个答案:

答案 0 :(得分:36)

更改为: signingConfig signingConfigs.release

来自 signingConfig signingConfigs.debug

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

答案 1 :(得分:3)

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

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

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

有关详细信息,请参阅http://developer.android.com/tools/publishing/app-signing.html#releasemode

答案 2 :(得分:3)

转到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
    }
}

答案 3 :(得分:0)

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

<强>解决方案

  1. 生成新密钥库
  2. 在build.gradle文件中提供引用
  3. 将构建版本更改为“release”
  4. 构建
  5. 这应该解决问题。

答案 4 :(得分:-1)

使用-genkeypair而不是-genkey解决了我的问题。

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