Di Android Studio, di mana file pemetaan ProGuard dihasilkan setelah kompilasi APK yang ditandatangani?
Saya tidak yakin apakah itu tidak berfungsi atau jika saya hanya lupa path file, dan pencarian Google / Stack Overflow wajib saya tidak menjawab ini
Jawaban:
Itu harus terletak di
build/outputs/proguard/release/mapping.txt
dalam direktori modul aplikasi Anda.Dalam versi terbaru ProGuard dan Android Studio, file tersebut berada di
build/outputs/mapping/release/mapping.txt
.sumber
/app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt
/app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt
adalah jalan baru.Bagi saya mereka berada di
'build/outputs/mapping/release'
sumber
Saya menemukan ini lebih bersih untuk mengkonfigurasi proguard untuk menulis file mapping.txt ke lokasi di luar
build/
pohon direktori, sehingga bisa lebih mudah diperiksa ke kontrol versi.Untuk mencapai ini, letakkan ini di
proguard-rules.pro
file Anda :Ini akan (kemungkinan besar) menempatkannya di direktori yang sama dengan
proguard-rules.pro
file Anda . Pada akhirnya, Anda mungkin ingin menulisnya ke direktori yang sama dengan file APK Anda dan dengan nama yang setara (yang mungkin termasuk rasa, tipe build dll).Catatan: dalam pengalaman saya, ini tidak ditolak oleh file templat proguard (yang disarankan oleh komentator untuk jawaban lain di sini).
UPDATE: Jika Anda memiliki beberapa rasa produk, maka ini adalah solusi yang jauh lebih baik: https://stackoverflow.com/a/31116608/444761
sumber
Saya menemukan bahwa itu tidak dihasilkan, jadi saya menambahkan ini ke file aturan
sumber
Sudah cukup terlambat untuk menjawab pertanyaan ini tetapi untuk berjaga-jaga jika seseorang membutuhkan jawaban saya.
Lokasi file Pemetaan untuk menghapus:
Umumnya dalam mode debug Anda tidak perlu file pemetaan karena kebingungan umumnya dinonaktifkan. Jika bukan itu masalahnya maka pastikan dalam file build.gradle Anda memiliki kode di bawah ini untuk varian debug.
Beberapa Gotcha:
file mapping.txt akan ditimpa setiap kali Anda membuat rilis dengan ProGuard, jadi pertama-tama buat cadangan file itu sebelum membuat rilis baru. Ini akan membantu menghilangkan jejak tumpukan dari versi aplikasi Anda yang lebih lama.
Selain itu ada dua cara untuk mengaburkan kode Anda:
1. Unggah file mapping.txt Anda ke Google play Console:
Saat menerbitkan aplikasi Anda di Google Play, Anda dapat mengunggah file mapping.txt untuk setiap versi APK Anda. Kemudian Google Play akan menghilangkan jejak tumpukan yang masuk dari masalah yang dilaporkan pengguna sehingga Anda dapat memeriksanya di Google Play Console.
2. Gunakan alat sdk lokal retrace.sh/retrace.bat:
Beberapa kali Anda ingin menjalankan versi rilis aplikasi Anda (dengan mengubah varian build untuk melepaskan dan menjalankannya) untuk mengecek dan memperbaiki kesalahan sehingga tidak terjadi dalam produksi (ketika dirilis ke play-store).
Untuk mengonversi jejak tumpukan yang dikaburkan menjadi yang dapat dibaca sendiri, gunakan skrip retrace ( retrace.bat di Windows; retrace.sh di Mac / Linux ).
Itu terletak di
<sdk-root>/tools/proguard/bin/
direktori.<sdk-root>
adalah tempat di mana semua perpustakaan dan sdks android Anda dipasang.Script mengambil file mapping.txt dan jejak stack Anda, menghasilkan jejak stack baru yang dapat dibaca.
Perintah Sintaks:
Sebagai contoh:
Saya lebih suka versi lokal yang membingungkan karena cukup praktis untuk memeriksa ulang kesalahan produksi.
Saya harap ini membantu.
sumber
Saya menggunakan versi Android Studio 2.2.2 . Bagi saya itu terletak di lokasi berikut:
Untuk debug:
\app\build\outputs\mapping\debug\mapping.txt
Untuk rilis:
\app\build\outputs\mapping\release\mapping.txt
sumber
Ini ada di dalam gambar - Anda akan menemukannya di folder pemetaan:
sumber
Karena saya bodoh dan tersesat bahkan ketika seseorang memberi tahu saya di mana file itu:
sumber