A nova documentação do ProGuard para Android diz para adicionar uma linha ao arquivo default.properties no diretório inicial do projeto. No entanto, ao abrir este arquivo, li no topo:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
Estou esquecendo de algo?
Além disso, existe uma maneira de habilitar o ProGuard apenas para uma construção de produção do Eclipse (ou seja, ao exportar o produto acabado)?
android
eclipse
proguard
obfuscation
Ted Hopp
fonte
fonte
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
se você precisa de configurações personalizadas para um projeto específico.Respostas:
apenas um follow-up porque eu estava procurando pela mesma coisa - e as respostas aqui estão desatualizadas - ultimamente a configuração do proguard básico está aqui no diretório sdk - então você só precisa colocar isso em seu project.properties:
se você quiser fazer modificações específicas do projeto, crie um proguard-project.txt e altere a linha para:
fonte
Android SDK (r20 ou superior)
Verifique o proguard.config predefinido referido em project.properties
Mais informações: http://proguard.sourceforge.net/manual/examples.html#androidapplication
No Gradle:
Aqui você pode verificar um arquivo proguard "padrão" que continuo atualizando: https://medium.com/code-procedure-and-rants/android-my-standard-proguard-ffeceaf65521
Android SDK (r19 ou inferior)
Você pode adicioná-lo ao default.properties. Eu tenho adicionado manualmente sem ter tido problemas até agora.
Se você adicionar a linha:
Como disse, ele só usará o ProGuard ao exportar aplicativo assinado (Android Tools => Export Signed Application)
Se você iniciar o projeto com o SDK antes do Android 2.3, o
proguard.cfg
arquivo não será criado (próximo adefault.properties
como em 2.3>).Para habilitar a criação automática dele, basta atualizar para o SDK do Android 2.3 e criar um novo projeto com as fontes existentes (que são as fontes do projeto que você possui atualmente).
Automagicamente, o
proguard.cfg
preenchimento será criado.Se ainda assim, você deseja criá-lo manualmente, é o que ele deve conter:
Acho que respondi a todas as perguntas acima.
ATUALIZAÇÃO :
Uma explicação linha por linha:
ATUALIZAÇÃO 2:
No ADT / Proguard mais recente, use em
-keepclasseswithmembers
vez de-keepclasseswithmembernames
fonte
proguard.config=proguard.cfg
mas o arquivo proguard.cfg não está em lugar nenhum ... Apesar de fazer a exportação várias vezes, reiniciando o Eclipse, etc. Alguma ideia do porquê? e como consertar isso? Obrigado.Pelo menos a partir do ADT 16, você pode realmente adicionar a linha
project.properties
e ela será preservada. Você pode tentar alterar a versão do SDK de destino e ver se elaproject.properties
é atualizada de acordo, mas a linha adicionada ainda está lá. Portanto, acho que o aviso está mal formulado; significa dizer que as configurações no arquivotarget
serão substituídas pelas configurações do projeto, em vez de vice-versa.fonte
As mudanças na configuração do ProGuard surgiram com o ADT versão 17. O ProGuard foi atualizado de 4.4 para 4.7 e a diferença na referência do arquivo de configuração já foi apresentada. Observe que os projetos existentes permaneceriam inalterados, deixando-os sem o conjunto de regras mais recente incluído nesta e nas versões mais recentes do ADT. Documentos relevantes para arranjos de configuração mais recentes, já observados por ligi acima, estão disponíveis em: -
http://tools.android.com/recent/proguardimprovements "Em segundo lugar, mudamos a forma como os arquivos de configuração são tratados."
fonte
Você pode adicionar a linha a
build.properties
, conforme mencionado emdefault.properties
.fonte