Как использовать ProGuard в Android Studio?



Это мой первый проект в Android Studio и код моего приложения не обфусцирован.
Im использует эту конфигурацию в сборке.файл gradle:
enter image description here



Я использую Build > Generate Signed APK... с помощью ProGuard проверено.
И, когда я протестировал с помощью Apk_OneClick.v4. 2, мой код полностью легко читается:



enter image description here



пожалуйста, помогите мне. : (

763   5  

5 ответов:

вы, вероятно, на самом деле не подписываете сборку выпуска APK с помощью мастера подписи. Вы можете либо построить релиз APK из командной строки с помощью команды:

./gradlew assembleRelease

или вы можете выбрать вариант выхода из Построить Варианты просмотр и построить его из графического интерфейса:

IDE main window showing Build Variants

вы можете настроить свою сборку.файл gradle для реализации proguard. Это может быть на уровне модуля или на уровне проекта.

 buildTypes {

    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

    }

}

показанная конфигурация предназначена для уровня отладки, но вы можете написать свои собственные вкусы сборки, как показано ниже внутри buildTypes:

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

лучше иметь отладку с minifyEnabled false и productionbuild и другие сборки как minifyEnabled true.

скопируйте свои правила proguard.txt-файл в корне вашего модуля или папки проекта как

$YOUR_PROJECT_DIR\YoutProject\yourmodule\proguard-rules.txt

вы можете изменить название файла, как вы хотите. После настройки используйте один из трех вариантов, доступных для создания сборки в соответствии с типом buildType

  1. перейдите к задаче gradle в правой панели и найдите assembleRelease/assemble(#your_defined_buildtype) в разделе задачи модуля

  2. перейдите к варианту сборки в левой панели и выберите сборку из выпадающего списка

  3. перейти в корневой каталог проекта в Проводнике и откройте cmd / terminal и запустите

Linux ./gradlew assembleRelease or assemble(#your_defined_buildtype)

Windows gradlew assembleRelease or assemble(#your_defined_buildtype)

вы можете найти apk в вашем каталоге модуля/сборки.

подробнее о конфигурации и расположении файлов proguard можно узнать по ссылке

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard

NB.: Теперь вместо

runProguard false

вам понадобится

minifyEnabled false

попробуйте переименовать ваши ' proguard-правила.txt 'file to' proguard-android.txt 'и удалить ссылку на' proguard-правила.txt ' в вашем файле gradle. Элемент getDefaultProguardFile(...) вызов ссылается на другой файл proguard по умолчанию, предоставленный Google, а не в вашем проекте. Поэтому удалите и это, чтобы здесь файл gradle читал:

buildTypes {
    release {
        runProguard true
        proguardFile 'proguard-android.txt'
    }
}

другие ответы здесь отличные ссылки на использование proguard. Тем не менее, я не видел, чтобы обсуждалась проблема, с которой я столкнулся, это был умственный Бендер. После создания подписанного выпуска .АПК, это положить в /release папка в вашем приложении, но в моем приложении был apk, которого не было в . Следовательно, я потратил часы на декомпиляцию неправильного apk, задаваясь вопросом, почему мои изменения proguard не повлияли. Надеюсь, это кому-то поможет!

Comments

    Ничего не найдено.