Gdzie w Android Studio są pliki mapowania ProGuard generowane po skompilowaniu podpisanego APK?
Nie jestem pewien, czy to nie działa, czy po prostu zapomniałem ścieżki pliku, a moje obowiązkowe wyszukiwanie w Google / Stack Overflow nie odpowiedziało na to
Odpowiedzi:
Powinien znajdować się pod adresem
build/outputs/proguard/release/mapping.txt
w katalogu modułu aplikacji.W najnowszej wersji ProGuard i Android Studio plik znajduje się pod adresem
build/outputs/mapping/release/mapping.txt
.źródło
/app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt
/app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt
są nowe ścieżki.Dla mnie są na
'build/outputs/mapping/release'
źródło
Zauważyłem, że łatwiejsze jest skonfigurowanie programu proguard do zapisywania pliku mapping.txt w lokalizacji poza
build/
drzewem katalogów, aby można go było wygodniej sprawdzić w kontroli wersji.Aby to osiągnąć, umieść to w swoim
proguard-rules.pro
pliku:Spowoduje to (najprawdopodobniej) umieszczenie go w tym samym katalogu, co
proguard-rules.pro
plik. Ostatecznie prawdopodobnie chcesz zapisać go w tym samym katalogu, co plik APK i pod równoważną nazwą (która może obejmować smak, typ kompilacji itp.).Uwaga: z mojego doświadczenia wynika, że nie jest to zastępowane przez plik szablonu proguard (co zasugerował komentator do innej odpowiedzi tutaj).
AKTUALIZACJA: Jeśli masz wiele smaków produktu, jest to znacznie lepsze rozwiązanie: https://stackoverflow.com/a/31116608/444761
źródło
Okazało się, że nie jest generowany, więc dodałem to do pliku reguł
źródło
Jest już dość późno, aby odpowiedzieć na to pytanie, ale na wypadek, gdyby ktoś potrzebował mojej odpowiedzi.
Lokalizacja pliku mapowania do odszyfrowania:
Generalnie w trybie debugowania nie potrzebujesz pliku mapowania, ponieważ generalnie zaciemnianie jest wyłączone. Jeśli tak nie jest, upewnij się, że w pliku build.gradle masz poniższy kod wariantu debugowania.
Niektóre kłopoty:
Plik mapping.txt jest nadpisywany za każdym razem, gdy tworzysz kompilację wydania za pomocą ProGuard, więc najpierw wykonaj kopię zapasową tego pliku przed utworzeniem nowej wersji. Pomoże to w zaciemnieniu śladu stosu ze starszej wersji aplikacji.
Oprócz tego istnieją dwa sposoby zaciemnienia kodu:
1. Prześlij plik mapping.txt do Konsoli Google Play:
Publikując aplikację w Google Play, możesz przesłać plik mapping.txt dla każdej wersji swojego pakietu APK. Następnie Google Play odszyfuskuje przychodzące ślady stosu z problemów zgłaszanych przez użytkowników, aby można było je przejrzeć w Konsoli Google Play.
2. Użyj lokalnego narzędzia SDK retrace.sh/retrace.bat:
Czasami chcesz uruchomić wydaną wersję swojej aplikacji (zmieniając wariant kompilacji na wydanie i uruchamiając ją), aby sprawdzić krzyżowo i naprawić błędy, aby nie zdarzały się one w środowisku produkcyjnym (po wydaniu do sklepu Play).
Aby samodzielnie przekonwertować zaciemniony ślad stosu na czytelny, użyj skryptu retrace ( retrace.bat w systemie Windows; retrace.sh w systemie Mac / Linux ).
Znajduje się w
<sdk-root>/tools/proguard/bin/
katalogu.<sdk-root>
to miejsce, w którym zostały zainstalowane wszystkie biblioteki i pakiety SDK systemu Android.Skrypt pobiera plik mapping.txt i ślad stosu, tworząc nowy, czytelny ślad stosu.
Składnia polecenia:
Na przykład:
Preferuję lokalną wersję zaciemniania, ponieważ jest to bardzo przydatne do wstępnego sprawdzania błędów produkcyjnych.
Mam nadzieję, że to pomoże.
źródło
Używam wersji Android Studio 2.2.2 . Dla mnie znajduje się w następujących lokalizacjach:
Do debugowania:
\app\build\outputs\mapping\debug\mapping.txt
Do wypuszczenia:
\app\build\outputs\mapping\release\mapping.txt
źródło
Tutaj jest na zdjęciu - znajdziesz go w folderze mapowania:
źródło
Ponieważ jestem głupi i gubię się, nawet jeśli ktoś mi powie, gdzie jest plik:
źródło