Skip to content

Google Play upload errorGoogle Play: “You uploaded a debuggable APK or Android App Bundle”

This Play Console error means the bundle you uploaded is marked debuggable, so anyone could attach a debugger to it on a user’s phone. The flag comes from the debug build type, a build type copied from debug, or a manifest line. Build a release bundle with debuggable off and upload again.

Short answer

Upload the release build, not a debug or staging one. Remove android:debuggable="true" from AndroidManifest.xml if it is there, and in Gradle set isDebuggable = false on any build type you ship, including ones made with initWith(debug). Check the merged manifest of the bundle with bundletool before you upload.

Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

Why the bundle is debuggable, and the fix

  1. 01

    A debug build was uploaded

    “Although the debug build type doesn't appear in the build configuration file, Android Studio configures it with debuggable true.” Android Developers, Configure build variants

    The debug build type turns debugging on without a line in your Gradle file. Build the release variant: flutter build appbundle, ./gradlew bundleRelease, or Build > Generate Signed App Bundle in Android Studio.

  2. 02

    A staging build type copies debug

    “lets you copy configurations from other build types, then configure only the settings you want to change.” Android Developers, Configure build variants

    A build type made with initWith(debug) copies its settings, debuggable included. If you ship that build, turn debugging off on it.

    // android/app/build.gradle.kts
    android {
      buildTypes {
        create("staging") {
          initWith(getByName("debug"))
          isDebuggable = false
          signingConfig = signingConfigs.getByName("release")
        }
      }
    }
  3. 03

    The manifest sets it by hand

    “Whether the application can be debugged, even when running on a device in user mode.” Android Developers, <application> (android:debuggable)

    An android:debuggable="true" line on the application tag, often left from an old tutorial, can mark builds as debuggable, and Android lint warns against it. Delete it and let the build type decide. In Expo or React Native, check that you uploaded a production build, not a development or preview one.

  4. 04

    Check the bundle before you upload

    bundletool prints the final manifest of the bundle. If the search finds debuggable set to true, the upload will fail again. No output means it is off.

    # Flutter: build/app/outputs/bundle/release/app-release.aab
    # Gradle: app/build/outputs/bundle/release/app-release.aab
    java -jar bundletool.jar dump manifest --bundle=app-release.aab | grep -i debuggable

Checked against the vendor’s docs on : Android Developers: Configure build variants; Android Developers: <application> element.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
A buyer in the United States, July 2022. Shopify on Fiverr
All 127 Fiverr reviews

Related: Google Play bundle signed in debug mode · Google Play app bundle signed with the wrong key · Google Play version code already used · Google Play QUERY_ALL_PACKAGES

Questions

More on this launch

Is this the same as the “signed in debug mode” error?

No, though both come from shipping a debug build. That error is about the signing key. This one is about the debuggable flag. A release build fixes both.

Do I need a new version code?

Usually not. A bundle refused at upload isn’t stored, so the same version code normally works. If Play says it was already used, raise it and build again.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

Something else?

Describe it and get a written quote

Describe the app and where it is in the launch. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.