Subiste un APK que se firmó en modo de depuración. Debes firmar tu APK en el error de modo de lanzamiento

4 minutos de lectura

Estoy tratando de cargar una aplicación en la tienda Google Play. Estoy creando el .apk y firmándolo con Maven. He usado maven-jarsigner-plugin para firmar el archivo .apk. Estoy usando la clave que creé con el asistente de Eclipse para firmar otra aplicación de Android. Zipalign el archivo .apk usando el siguiente comando: zipalign [-f] [-v] archivo de entrada.apk archivo de salida.apk

Cuando intento cargar la aplicación en la tienda de juegos, aparece el error Cargaste un APK que se firmó en modo de depuración. Debes firmar tu APK en modo de lanzamiento. ¿Alguien puede decirme cómo firmar el apk en modo de lanzamiento? Soy nuevo en Maven (comencé a usarlo hoy). Gracias

  • A ver si la respuesta aquí ayuda.

    – yorkw

    30 mayo 2013 a las 22:00


  • Tengo el mismo problema al usar unity stackoverflow.com/questions/60603203/…

    – INDRAJITH EKANAYAKE

    9 de marzo de 2020 a las 16:32

Cambiar a: signatureConfig signatureConfigs.release

de firmaConfig firmaConfigs.debug

en su nivel de aplicación build.gradle

  • Pasé horas lidiando con esto mientras intentaba implementar una aplicación Flutter, esto definitivamente necesita estar mejor documentado, una simple TODO en el archivo simplemente no es suficiente… ¡gracias!

    – mchurichi

    1 de julio de 2020 a las 6:37

  • @mchurichi En realidad, está documentado aquí flutter.dev/docs/deployment/android#configure-signing-in-gradle pero también me lo perdí

    – señorvcs

    8 sep 2020 a las 21:46

  • no me funciona, dio Could not get unknown property 'release' for SigningConfig container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer. al correr flutter build apk --release

    – Phoujdar duro

    9 de agosto de 2021 a las 22:07

  • ¡Funciona hombre! ¡Muchas gracias!

    – Jesús Erwin Suárez

    13 de febrero a las 15:49

Ir Android/aplicación/build.gradle

Al final del archivo:

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

El resultado debería ser como:

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

  • ¡Funciona hombre! ¡Muchas gracias!

    – Jesús Erwin Suárez

    13 de febrero a las 15:49

No sé cómo haces eso en Maven, pero necesitas compilar tu aplicación con un almacén de claves de lanzamiento. Puedes crear uno con keytoolque está disponible en su carpeta bin de Java:

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

Al crearlo, debe proporcionar dos contraseñas, una para el almacén de claves y otra para la clave. Cuando se crea su almacén de claves, puede usar el asistente de exportación de Eclipse para compilar su aplicación en modo de lanzamiento.

Para obtener más detalles, consulte http://developer.android.com/tools/publishing/app-signing.html#releasemode

  • El problema es que no quiero usar Eclipse para compilar la aplicación. Lo probé y pude hacerlo sin ningún problema. Necesito compilarlo usando Maven,

    – Nemín

    22 de mayo de 2013 a las 0:08

  • Esta es la explicación correcta, ¡solo use este almacén de claves generado en maven!

    – thiagolr

    23 de mayo de 2013 a las 12:33

Cree siempre su almacén de claves con un nombre y un alias que contengan “liberación” y no “depuración”. Si tiene el mensaje “Cargó un APK que se firmó en modo de depuración. Debe firmar su APK en el error de modo de lanzamiento”, es seguro que está utilizando el almacén de claves predeterminado que es ‘debug.keystore’, por lo tanto, genera apk en modo de depuración.

Solución

  1. Generar nuevo almacén de claves
  2. Dar referencia en el archivo build.gradle
  3. Cambiar variante de compilación a ‘lanzamiento’
  4. Construir

esto debería solucionar el problema.

Por error de aleteo,
Por defecto, flutter crea tipos de compilación como los siguientes

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

debe cambiar la línea de configuración de firma

        signingConfig signingConfigs.release

avatar de usuario de yendis
yendis

Tuve el mismo problema con mi aplicación flutter,

Agrégalos a tu android/app/build. Gradle:

antes de android { compileSdkVersion 30

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

Y después de defaultConfig {

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

avatar de usuario de romain ni
romain ni

Usar -genkeypair en lugar de -genkey me resolvió el problema.

Entonces: keytool -genkeypair -keystore name.keystore -alias nameapp -keyalg RSA

¿Ha sido útil esta solución?