Adil Hussain
Adil Hussain

Reputation: 32103

How do I debug an APK that is signed for release?

I have a release APK which I have signed, uploaded to Google Play and installed on my Android device. I would like to debug this APK (by means of Android Studio or Eclipse) whilst it is running on my Android device. I have done this before and I remember it being with one of the Android development tools (perhaps Dalvik Debug Monitor). Sadly, I cannot remember how to do it and I have been unable to find any articles online. Does anybody know how I can do this?

Notes

  1. I have set android:debuggable="true" in the app's manifest file.
  2. I have enabled USB Debugging on my Android device.

Upvotes: 149

Views: 155440

Answers (7)

Trang Đỗ
Trang Đỗ

Reputation: 180

enter image description here

Add debuggable true in release in buildTypes and turn on 'release' in botton left Build Variants on Android studio Source: https://mobikul.com/release-variant-of-app-enable-logcat-running-release-build-application/ It work me! Can you try it

Upvotes: 3

Manuel Lopera
Manuel Lopera

Reputation: 2376

I know this is old question, but future references. In Android Studio with Gradle:

buildTypes {
    release {
        debuggable true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

The line debuggable true was the trick for me.

Before Gradle 1.0 it was runProguard instead of minifyEnabled. Look at here.

Upvotes: 176

Ramachandra Reddy Avula
Ramachandra Reddy Avula

Reputation: 1114

Add the following to your app build.gradle and select the specified release build variant and run

signingConfigs {
        config {
            keyAlias 'keyalias'
            keyPassword 'keypwd'
            storeFile file('<<KEYSTORE-PATH>>.keystore')
            storePassword 'pwd'
        }
    }
    buildTypes {
      release {
          debuggable true
          signingConfig signingConfigs.config
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

Upvotes: 11

In case of you decided the debug your apk which is already in market but not assigned to be debuggable and you do not want to publish it again. So follow the below steps;

  1. Decompile the Apk with ApkTool(eg. apktool d <APK_PATH>)
  2. Open the AndroidManifest.xml from decompiled files
  3. Set android:debuggable="true" in application tag
  4. Compile the modified source with ApkTool (eg. apktool b <MODIFIED_PATH>)
  5. Debuggable apk ready(which unsigned means cannot publish store). You can debug as you wish.

Upvotes: 13

Shailendra Madda
Shailendra Madda

Reputation: 21531

I tried with the following and it's worked:

release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

Upvotes: 13

sandalone
sandalone

Reputation: 41749

Besides Manuel's way, you can still use the Manifest.

In Android Studio stable, you have to add the following 2 lines to application in the AndroidManifest file:

    android:debuggable="true"
    tools:ignore="HardcodedDebugMode"

The first one will enable debugging of signed APK, and the second one will prevent compile-time error.

After this, you can attach to the process via "Attach debugger to Android process" button.

Upvotes: 44

Sam Dozor
Sam Dozor

Reputation: 40734

Be sure that android:debuggable="true" is set in the application tag of your manifest file, and then:

  1. Plug your phone into your computer and enable USB debugging on the phone
  2. Open eclipse and a workspace containing the code for your app
  3. In Eclipse, go to Window->Show View->Devices
  4. Look at the Devices view which should now be visible, you should see your device listed
  5. If your device isn't listed, you'll have to track down the ADB drivers for your phone before continuing
  6. If you want to step through code, set a breakpoint somewhere in your app
  7. Open the app on your phone
  8. In the Devices view, expand the entry for your phone if it isn't already expanded, and look for your app's package name.
  9. Click on the package name, and in the top right of the Devices view you should see a green bug along with a number of other small buttons. Click the green bug.
  10. You should now be attached/debugging your app.

Upvotes: 91

Related Questions