Aller au contenu
Narvy

APK ou App Bundle débogable refusé par Google Play

Le fichier envoyé contient android:debuggable="true" dans son manifeste. Google Play ne publie pas de build débogable. Envoyez la variante release (./gradlew bundleRelease) et supprimez tout attribut android:debuggable ajouté à la main.

Play Console, à l'envoi
You uploaded a debuggable APK or Android App Bundle. For security reasons you need to disable debugging before it can be published in Google Play.

Ce que cela signifie

Une application débogable accepte un débogueur et expose son processus à run-as sur n'importe quel appareil : ses données et sa mémoire sont lisibles sans root. Le plugin Android Gradle ne pose cet indicateur que sur les builds debug ; il se retrouve dans un envoi au store quand la variante debug est envoyée, quand le manifeste l'écrit en dur, ou quand un build type de release définit isDebuggable = true.

Échéance

Pas de date : Google Play refuse les envois débogables depuis des années. C'est un point bloquant aujourd'hui.

Corriger

1. Compiler la variante release

terminal
./gradlew bundleRelease     # app/build/outputs/bundle/release/app-release.aab
./gradlew assembleRelease   # APK

2. Ne pas forcer l'indicateur

app/build.gradle.kts
android {
    buildTypes {
        release {
            isDebuggable = false   // valeur par défaut ; retirez tout 'true'
        }
    }
}

Supprimez android:debuggable de AndroidManifest.xml s'il y figure : le build type le règle pour vous, et une valeur écrite en dur l'emporte sur lui.

Vérifier avant de soumettre

Déposez l'APK, AAB ou lot d'APK fractionnés (XAPK, APKS, APKM) sur la page de contrôle des stores. Elle exécute PLAY-DEBUGGABLE avec les dates de cette page, puis supprime le fichier : rien de l'application n'est conservé. Le même moteur tourne hors ligne dans la CLI Narvy et renvoie le code 1 quand un point bloquant est trouvé, ce qui permet de bloquer un job de CI.

Hors ligne, depuis un terminal (narvy-cli 1.2.0 ou plus)
narvy store-check app-release.aab --lang fr

Contrôler un build dans le navigateur

Questions fréquentes

J'ai compilé avec bundleRelease et le fichier est toujours signalé. Pourquoi ?

Cherchez android:debuggable="true" dans src/main/AndroidManifest.xml ou dans le manifeste d'un flavor, et isDebuggable = true (Groovy : debuggable true) dans le build type release ou dans un build type personnalisé que vous envoyez.

"Signed in debug mode" est-ce la même erreur ?

Non. "You uploaded an APK or Android App Bundle that was signed in debug mode" concerne la clé de signature, pas l'indicateur débogable : signez avec votre clé d'importation (une configuration de signature release). Les deux vont souvent ensemble quand la variante debug est envoyée.

Un build débogable pose-t-il un problème de sécurité hors du store ?

Oui. Toute personne qui a l'appareil peut attacher un débogueur ou lire les fichiers privés de l'application via adb shell run-as. N'en distribuez pas non plus à des testeurs extérieurs à l'équipe.