Как отладить apk, подписанный для выпуска?
У меня есть apk, который я подписал и загрузил в Android Market, и установлен на моем телефоне. Я хотел бы отладить эту версию apk (с помощью Eclipse), пока она работает на моем телефоне. Я сделал это раньше (и помню, что это был один из инструментов разработки Android, возможно, Dalvik Debug Monitor), но, к сожалению, он не помнит, как это сделать, и не смог найти какие-либо статьи в Интернете. Кто-нибудь знает, как это можно сделать?
Примечание: Я установил android:debuggable="true"
в манифесте и включил USB-отладку на моем телефоне.
Ответы
Ответ 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, который уже есть на рынке, но не назначен для отладки, и вы не хотите публиковать его снова. Так что следуйте ниже шагов;
- Декомпилируйте Apk с помощью ApkTool(например,
apktool d <APK_PATH>
)
- Откройте AndroidManifest.xml из декомпилированных файлов
- Установите
android:debuggable="true"
в теге application
- Скомпилируйте модифицированный источник с помощью ApkTool (например,
apktool b <MODIFIED_PATH>
)
- Debuggable apk ready (что означает, что неподписанный не может публиковать хранилище). Вы можете отлаживать, как вы хотите.