maven 您上传了在调试模式下签名的APK,您需要在发布模式下签名APK错误

eqqqjvef  于 2022-11-22  发布在  Maven
关注(0)|答案(8)|浏览(131)

我尝试在Google Play商店上传一个应用程序。我正在构建.apk并使用Maven对其进行签名。我使用maven-jarsigner-plugin对.apk文件进行签名。我使用Eclipse向导创建的密钥对另一个Android应用程序进行签名。我使用以下命令对.apk文件进行zipalign:压缩对齐[-f] [-v]输入文件.apk输出文件.apk
当我尝试在playstore上上传应用程序时,我收到错误您上传了一个在调试模式下签名的APK。您需要在发布模式下签名您的APK。有人能告诉我如何在发布模式下签名APK吗?我是Maven的新手(今天开始使用)。谢谢

bpzcxfmw

bpzcxfmw1#

更改为:签名配置签名配置发布
从签名配置签名配置调试
在您的build.gradle应用程序级别

cvxl0en2

cvxl0en22#

转到安卓/应用程序/构建版本.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
    }
}
b1zrtrql

b1zrtrql3#

我不知道在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

0dxa2lsx

0dxa2lsx4#

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

解决方案

1.生成新密钥库
1.在build.gradle文件中给予引用
1.将组建变数变更为'release'
1.组建
这应该可以解决该问题。

ut6juiuv

ut6juiuv5#

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

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
2admgd59

2admgd596#

我的Flutter应用程序也有同样的问题,
将这些添加到您的android/app/build。Gradle:
在Android { compileSdkVersion 30之前

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

在默认配置{

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

yvgpqqbh7#

使用-genkeypair而不是-genkey解决了这个问题。
因此:密钥工具-生成密钥对-密钥库名称。密钥库-别名名称应用程序-密钥算法RSA

ljsrvy3e

ljsrvy3e8#

完全按照**this documentation,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

相关问题