Dokumentasi baru di ProGuard untuk Android mengatakan untuk menambahkan baris ke file default.properties di direktori utama proyek. Namun, saat membuka file ini, saya membaca di bagian atas:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
Apakah saya melewatkan sesuatu?
Selain itu, apakah ada cara untuk mengaktifkan ProGuard hanya untuk build produksi dari Eclipse (yaitu, saat mengekspor produk jadi)?
android
eclipse
proguard
obfuscation
Ted Hopp
sumber
sumber
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
, jika Anda memerlukan pengaturan khusus untuk proyek tertentu.Jawaban:
hanya tindak lanjut karena saya mencari hal yang sama - dan jawabannya di sini sudah usang - akhir-akhir ini konfigurasi dasar proguard ada di sini di dir sdk - jadi Anda hanya perlu memasukkan ini ke dalam properti proyek Anda:
jika Anda ingin membuat modifikasi khusus proyek, buat proguard-project.txt dan ubah baris menjadi:
sumber
Android SDK (r20 atau lebih tinggi)
Harap periksa proguard.config standar yang dirujuk di project.properties
Info selengkapnya: http://proguard.sourceforge.net/manual/examples.html#androidapplication
Di Gradle:
Di sini Anda dapat memeriksa file "default" proguard yang terus saya perbarui: https://medium.com/code-procedure-and-rants/android-my-standard-proguard-ffeceaf65521
Android SDK (r19 atau lebih rendah)
Anda dapat menambahkannya ke default.properties. Saya telah menambahkan secara manual tanpa masalah sejauh ini.
Jika Anda menambahkan baris:
Seperti yang dikatakan itu hanya akan menggunakan ProGuard saat mengekspor aplikasi yang ditandatangani (Alat Android => Ekspor Aplikasi yang Ditandatangani)
Jika Anda memulai proyek dengan SDK sebelum Android 2.3,
proguard.cfg
file tidak akan dibuat (di sampingdefault.properties
seperti di 2.3>).Untuk mengaktifkan pembuatannya secara otomatis, cukup perbarui ke SDK Android 2.3 dan buat proyek baru dengan sumber yang ada (yang merupakan sumber proyek yang Anda miliki saat ini).
Secara otomatis
proguard.cfg
pengisian akan dibuat.Jika masih, Anda ingin membuatnya secara manual, inilah yang seharusnya berisi:
Saya rasa saya sudah menjawab semua pertanyaan di atas.
PERBARUI :
Penjelasan baris demi baris:
UPDATE 2:
Dalam penggunaan ADT / Proguard terbaru,
-keepclasseswithmembers
bukan-keepclasseswithmembernames
sumber
proguard.config=proguard.cfg
tetapi file proguard.cfg tidak terlihat ... Meskipun melakukan ekspor beberapa kali, memulai ulang Eclipse, dll. Ada tahu mengapa? dan bagaimana cara memperbaikinya? Terima kasih.Setidaknya pada ADT 16, Anda memang dapat menambahkan baris tersebut
project.properties
, dan itu akan dipertahankan. Anda dapat mencoba mengubah versi SDK target, dan melihat bahwaproject.properties
diperbarui sesuai tetapi baris yang ditambahkan masih ada. Jadi, saya pikir peringatan itu tidak tepat; itu berarti mengatakan bahwa pengaturan di file sepertitarget
akan ditimpa dengan pengaturan proyek, bukan sebaliknya.sumber
Perubahan pada konfigurasi ProGuard muncul dengan ADT versi 17. ProGuard diperbarui dari 4.4 menjadi 4.7 dan perbedaan dalam referensi file konfigurasi yang sudah dicatat diperkenalkan. Perhatikan bahwa proyek yang ada akan tetap tidak berubah, membiarkannya tanpa kumpulan aturan yang lebih baru yang disertakan dalam versi ADT ini dan yang lebih baru. Dokumen yang relevan untuk pengaturan konfigurasi yang lebih baru, telah dicatat oleh ligi di atas, tersedia di: -
http://tools.android.com/recent/proguardimprovements "Kedua, kami telah mengubah cara file konfigurasi ditangani."
sumber
Anda dapat menambahkan baris ke
build.properties
, seperti yang disebutkan dalamdefault.properties
.sumber