2014-09-08 29 views
96

Android stüdyosunda imzalı bir APK derledikten sonra proguard haritalama dosyaları oluşturuldu? o çalışmıyorsaandroid studio, proguard haritalama dosyası nerede

emin değilim ya da ben sadece dosya yolunu unuttu ve eğer benim zorunlu google/stackoverflow arama cevap vermedi bu

Bu sizin uygulama modülünün dizininde build/outputs/proguard/release/mapping.txt kısmında bulunması gereken
+0

burada açıklanmıştır resmen https://firebase.google.com/docs/crash/android#uploading_proguard_mapping_files_manually –

+2

@JayakrishnanPM tarihinde 3 yıl sonra kendisine getirmiştim görmekten memnun. – CQM

cevap

132

.

ProGuard ve Android Studio'nun en son sürümünde, dosya build/outputs/mapping/release/mapping.txt adresinde bulunur.

Benim için
+1

Yeni yol, build/outputs/mapping/release/mapping.txt –

63

onlar 'inşa/çıkışlar/haritalama/tahliye'

+11

'build/outputs/mapping/release/mapping.txt' – aleb

+1

Evet, bu bir android studio 2.3.2 – Subho

+0

için mükemmel bir uygulama/build/outputs/mapping /release/mapping.txt bc, eşleme dosyasını içermeyen ayrı bir derleme klasörü vardı ... – NukeouT

24

Ben oluşturuluyor olmadığını buldum, o yüzden kuralları ben temizleyici buldum

-printmapping build/outputs/mapping/release/mapping.txt 
+1

Baskı eşlemenin kullandığım bir şablon koruma dosyası tarafından geçersiz kılındığını buldum! – Boy

+0

bu çalıştı ve benim için tüm proguard çıktı dosyalarını oluşturdu. – j2emanue

33

açmak amacıyla bu katma altındadır proguardını, mapping.txt dosyasını build/ dizin ağacının dışındaki bir konuma yazacak şekilde yapılandırmak, böylece daha kolay bir şekilde sürüm kontrolüne kontrol edilebilir.

Bunu başarmak için, proguard-rules.pro dosyasında bu koyun: Bu (büyük olasılıkla) sizin proguard-rules.pro dosyasıyla aynı dizinde yerleştirecektir

-printmapping mapping.txt 

. Nihayetinde, muhtemelen APK dosyanızla aynı dizine ve eşdeğer bir adla (lezzet, yapı tipi vb. Içerebilir) yazmak isteyebilirsiniz.

Not: Tecrübelerime göre bu değil (burada başka bir answer bir yorumcu tarafından önerildi) proguard şablon dosyası tarafından reddedildi.

GÜNCELLEME: Burada https://stackoverflow.com/a/31116608/444761

+1

Bu, çözümümden daha iyi, daha sonra sürüm kontrolü altında yerleştirebileceğinizi söylediğiniz gibi. –

+0

Neden bu sürümü kontrol etmek istersiniz? Yaptığınız bağımlı olarak ayrı ayrı yayınladığınız her APK için ihtiyacınız var. Böyle bir apk'yi kaynaktan ayrı olarak yüklemeniz/kontrol etmeniz gerektiğinden, aslında kaynak VCS'de kontrol etmeniz gerekmez !? – Denny1989

+0

@ Denny1989 Ne demek istediğinden emin değil. Bir APK oluşturdum ve bunu sürüm kontrolü dışında saklıyorum. Haritalama dosyasını bir yerde tutmalıyım. APK ile birlikte saklayabilirim *, ancak onu kontrol etmek için daha temiz buluyorum. Ancak, proje başına yalnızca bir sürüm APK'm var, bu yüzden YMMV. –

6

enter image description here

bir resimde - eğer haritalama klasöründe bulacaksınız:: Birden fazla ürün tatlar varsa, o zaman bu çok daha iyi bir çözümdür

1
Ben aptalım ve hatta kaybolma Çünkü biri bana anlatmadan zaman

dosyanın nerede: Ben sürümünü kullanıyorum

cd StudioProjects/fooProject 
find . -name "mapping.txt" | xargs less 
8

Android Studio 2.2.2. sürüm için \app\build\outputs\mapping\debug\mapping.txt

: Hata ayıklamak için

: Benim için aşağıdaki konumlarda bulunur \app\build\outputs\mapping\release\mapping.txt

4

Onun bu soruya cevap ama sadece durumda birisi benim cevabını arayan oldukça geç .Haritalama dosyasının

Yer deobfuscate için:

ProGuard app app/build/çıkışlar/haritalama/LEZZET/bırakma dosyayı kaydeder/mapping.txt

Genellikle hata ayıklama modunda haritalama dosyasına ihtiyacınız yoktur, çünkü genellikle gizleme devre dışıdır. Eğer bu durumda değilse, build.gradle dosyasında hata ayıklama varyantının altında kodunuzun olduğundan emin olun.

debug { 
    minifyEnabled false 
    debuggable true 
} 

Bazı Sorunlar:

mapping.txt dosyası yeni bir derlemesi oluşturmadan önce serbest bırakılmasını ProGuard ile inşa böylece dosyanın ilk almak yedeğini oluşturmak her zaman üzerine alır. Uygulamanızın eski bir sürümünden gizlenmiş yığın izlemeye yardımcı olur. Google'da uygulama oyna yayınlarken

, sen yükleyebilirsiniz:

1. Google oynamak Konsolu'na mapping.txt dosyası yükleyin: Apart kod karartmak için iki yol vardır bundan

APK'nızın her bir sürümü için mapping.txt dosyası. Ardından, Google Play, kullanıcı tarafından bildirilen sorunlardan gelen yığın izlerini takip ederek, bunları Google Play Console'da inceleyebilmenizi sağlar.

2. Yerel sdk aracı retrace.sh/retrace.bat: uygulamanızın sürümünü çalıştırmak istediğiniz

Bazı zamanlar çek geçmeye (serbest bırakmak için varyantı inşa değişen ve onu çalıştırarak) ve üretimde (oyun deposuna bırakıldığında) oluşmaması için hataları düzeltin.

Gizlenmiş bir yığın izlemeyi okunabilir olana dönüştürmek için, retrace komut dosyasını kullanın (Windows'da retrace.bat; Mac/Linux'da retrace.sh).

<sdk-root>/tools/proguard/bin/ dizininde bulunur.

<sdk-root>, tüm android kitaplıklarınızın ve sdk'lerinin kurulu olduğu yerdir.

Komut dosyası, mapping.txt dosyasını ve yığın izlemenizi alarak yeni, okunabilir yığın izlemesi üretiyor.

Komut dizimi: Örneğin

retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>] 

:

retrace.bat -verbose mapping.txt obfuscated_trace.txt 

Ben üretim hatalarını önceden kontrol etmek oldukça kullanışlı olduğu gibi obfuscating yerel versiyonunu tercih ediyorum.

Umarım yardımcı olur.