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

> Play rejects a bundle marked debuggable. Upload the release build, remove android:debuggable from the manifest, and check custom build types that copy debug.

Canonical: https://app369.com/fix/google-play-debuggable-apk-or-bundle/
Last updated: 2026-11-09

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**](https://app369.com/fixed-price/flutter-firebase-bug-fix/) 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**](https://developer.android.com/build/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**](https://developer.android.com/build/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)**](https://developer.android.com/guide/topics/manifest/application-element) 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 November 9, 2026: [Android Developers: Configure build variants](https://developer.android.com/build/build-variants); [Android Developers: <application> element](https://developer.android.com/guide/topics/manifest/application-element).

## **Rather hand it over?**

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

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Google Play bundle signed in debug mode**](https://app369.com/fix/google-play-app-bundle-signed-in-debug-mode/) · [**Google Play app bundle signed with the wrong key**](https://app369.com/fix/google-play-app-bundle-wrong-key/) · [**Google Play version code already used**](https://app369.com/fix/google-play-version-code-already-used/) · [**Google Play QUERY_ALL_PACKAGES**](https://app369.com/fix/google-play-query-all-packages-permission/)

Questions

## **More on this launch**

<details>

<summary>**Is this the same as the “signed in debug mode” error? **+</summary>

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.

</details>

<details>

<summary>**Do I need a new version code? **+</summary>

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.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

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.

</details>

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.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)