web-dev-qa-db-fra.com

Comment déboguer apk signé pour la publication?

J'ai un apk que j'ai signé et téléchargé sur Android Market et installé sur mon téléphone. Je voudrais déboguer cette version apk (au moyen d’Eclipse) pendant son exécution sur mon téléphone. Je l'avais déjà fait auparavant (et rappelez-vous que c'était avec l'un des outils de développement Android; peut-être Dalvik Debug Monitor), mais je ne me souviens malheureusement pas comment faire et nous n'avons trouvé aucun article en ligne. Est-ce que quelqu'un sait comment cela peut être fait?

Remarque: Je ai défini Android:debuggable="true" Dans le manifeste et activé le débogage USB sur mon téléphone.

95
Adil Hussain

Assurez-vous que Android:debuggable="true" est défini dans la balise application de votre fichier manifeste, puis:

  1. Branchez votre téléphone sur votre ordinateur et activez le débogage USB sur le téléphone.
  2. Ouvrez Eclipse et un espace de travail contenant le code de votre application.
  3. Dans Eclipse, allez à Window-> Show View-> Devices
  4. Regardez la vue Périphériques qui devrait maintenant être visible, vous devriez voir votre périphérique répertorié
  5. Si votre appareil ne figure pas dans la liste, vous devez localiser les pilotes ADB de votre téléphone avant de continuer.
  6. Si vous souhaitez parcourir le code, définissez un point d'arrêt quelque part dans votre application.
  7. Ouvrez l'application sur votre téléphone
  8. Dans la vue Appareils, développez l'entrée de votre téléphone si ce n'est déjà fait et recherchez le nom du package de votre application.
  9. Cliquez sur le nom du paquet. En haut à droite de la vue Périphériques, vous devriez voir un bogue vert avec plusieurs autres petits boutons. Cliquez sur le bug vert.
  10. Vous devriez maintenant être attaché/déboguer votre application.
66
Sam Dozor

Je sais que c'est une vieille question, mais des références futures. Dans Android Studio avec Gradle:

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

La ligne debuggable true était le truc pour moi.

Mise à jour:

Depuis le niveau 1.0, c'est minifyEnabled au lieu de runProguard. Regardez ici

109
Manuel Lopera

En plus de la manière de Manuel, vous pouvez toujours utiliser le manifeste.

Dans Android Studio stable, vous devez ajouter les 2 lignes suivantes à application dans le fichier AndroidManifest:

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

Le premier permettra le débogage des fichiers APK signés et le second empêchera les erreurs de compilation.

Ensuite, vous pouvez joindre le processus via le bouton "Joindre le débogueur au Android processus").

37
sandalone

J'ai essayé avec ce qui suit et ça a marché:

release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
8
Shylendra Madda

Ajoutez les éléments suivants à votre application build.gradle, sélectionnez la variante de construction de version spécifiée et exécutez

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

Dans le cas où vous avez décidé de déboguer votre apk qui est déjà sur le marché mais n'est pas assigné à être débogué et vous ne souhaitez pas le publier à nouveau. Alors suivez les étapes ci-dessous;

  1. Décompiler Apk avec ApkTool (par exemple. apktool d <APK_PATH>)
  2. Ouvrez le fichier AndroidManifest.xml à partir de fichiers décompilés
  3. Ensemble Android:debuggable="true" dans la balise application
  4. Compilez le source modifié avec ApkTool (par exemple, apktool b <MODIFIED_PATH>)
  5. Debuggable apk ready (ce qui signifie non signé ne peut pas publier de magasin). Vous pouvez déboguer à votre guise.
0