Как отладить apk, подписанный для выпуска? - программирование
Подтвердить что ты не робот

Как отладить apk, подписанный для выпуска?

У меня есть apk, который я подписал и загрузил в Android Market, и установлен на моем телефоне. Я хотел бы отладить эту версию apk (с помощью Eclipse), пока она работает на моем телефоне. Я сделал это раньше (и помню, что это был один из инструментов разработки Android, возможно, Dalvik Debug Monitor), но, к сожалению, он не помнит, как это сделать, и не смог найти какие-либо статьи в Интернете. Кто-нибудь знает, как это можно сделать?

Примечание: Я установил android:debuggable="true" в манифесте и включил USB-отладку на моем телефоне.

4b9b3361

Ответ 1

Убедитесь, что android:debuggable="true" установлен в теге application вашего файла манифеста, а затем:

  • Подключите телефон к компьютеру и включите USB-отладку на телефоне.
  • Откройте eclipse и рабочую область, содержащую код для вашего приложения.
  • В Eclipse откройте Window- > Show View- > Devices
  • Посмотрите на вид устройств, который теперь должен быть виден, вы должны увидеть, что ваше устройство указано
  • Если ваше устройство отсутствует в списке, вам нужно будет отследить драйверы ADB для вашего телефона, прежде чем продолжить.
  • Если вы хотите выполнить код, установите контрольную точку где-нибудь в своем приложении
  • Откройте приложение на своем телефоне
  • В представлении "Устройства" разверните запись для своего телефона, если она еще не расширена, и найдите имя своего приложения.
  • Нажмите на имя пакета и в правом верхнем углу окна "Устройства" вы увидите зеленую ошибку вместе с рядом других маленьких кнопок. Нажмите зеленую ошибку.
  • Теперь вам нужно подключить/отладить приложение.

Ответ 2

Я знаю, что это старый вопрос, но будущие ссылки. В Android Studio с Gradle:

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

Линия debuggable true была для меня трюком.

Update:

Так как gradle 1.0 it minifyEnabled вместо runProguard. Посмотрите здесь

Ответ 3

Помимо пути Мануэля, вы все равно можете использовать манифест.

В Android Studio stable вы должны добавить следующие 2 строки в application в файле AndroidManifest:

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

Первый вариант позволит отлаживать подписанный APK, а второй - предотвратить ошибку времени компиляции.

После этого вы можете подключиться к процессу с помощью кнопки "Прикрепить отладчик к процессу Android".

Ответ 4

Я пробовал со следующим и работал:

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

Ответ 5

Добавьте следующее в ваше приложение build.gradle и выберите указанный вариант сборки выпуска и выполните

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'
        }
    }

Ответ 6

В случае, если вы решили отладить ваш apk, который уже есть на рынке, но не назначен для отладки, и вы не хотите публиковать его снова. Так что следуйте ниже шагов;

  1. Декомпилируйте Apk с помощью ApkTool(например, apktool d <APK_PATH>)
  2. Откройте AndroidManifest.xml из декомпилированных файлов
  3. Установите android:debuggable="true" в теге application
  4. Скомпилируйте модифицированный источник с помощью ApkTool (например, apktool b <MODIFIED_PATH>)
  5. Debuggable apk ready (что означает, что неподписанный не может публиковать хранилище). Вы можете отлаживать, как вы хотите.