답변:
build/outputs/proguard/release/mapping.txt
응용 프로그램 모듈의 디렉토리에 있어야합니다 .
최신 버전의 ProGuard 및 Android Studio에서 파일은에 있습니다 build/outputs/mapping/release/mapping.txt
.
/app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt
/app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt
새로운 길입니다.
mapping.txt 파일을 외부 위치에 쓰도록 proguard를 구성하는 것이 더 깨끗하다는 것을 알았습니다. build/
디렉토리 트리 하여 버전 관리에보다 편리하게 체크인 할 수있는 것이 더 .
이것을 달성하려면 proguard-rules.pro
파일 에 이것을 넣으십시오 .
-printmapping mapping.txt
이것은 (아마도) 당신과 같은 디렉토리에 배치합니다 proguard-rules.pro
파일 . 궁극적으로 APK 파일과 동일한 디렉토리에 동일한 이름 (향기, 빌드 유형 등이 포함될 수 있음)으로 파일을 작성하려고합니다.
참고 : 내 경험상, 이것은 proguard 템플릿 파일 ( 여기서 다른 답변 에 대한 의견 제시자가 제안한)에 의해 지배 되지 않습니다 .
업데이트 : 여러 제품 맛이있는 경우 훨씬 나은 솔루션입니다 : https : //.com/a/31116608/444761
이 질문에 대답하기에는 꽤 늦었지만 누군가 내 대답이 필요한 경우를 대비하여.
비난 독화 할 매핑 파일의 위치 :
ProGuard는 앱 app / build / outputs / mapping / FLAVOR / release / mapping.txt에 파일을 저장합니다
일반적으로 디버그 모드에서는 일반적으로 난독 화가 비활성화되어 있으므로 매핑 파일이 필요하지 않습니다. 그렇지 않은 경우 build.gradle 파일에 디버그 변형 코드가 있는지 확인하십시오.
debug {
minifyEnabled false
debuggable true
}
몇 가지 문제점 :
ProGuard로 릴리스 빌드를 만들 때마다 mapping.txt 파일을 덮어 쓰므로 먼저 새 릴리스를 만들기 전에 해당 파일을 백업하십시오. 이전 버전의 앱에서 난독 화 된 스택 추적에 도움이됩니다.
그 외에도 코드를 난독 화하는 두 가지 방법이 있습니다.
1. mapping.txt 파일을 Google Play Console에 업로드합니다.
Google Play에 앱을 게시 할 때 각 버전의 APK에 대한 mapping.txt 파일을 업로드 할 수 있습니다. 그런 다음 Google Play는 사용자가보고 한 문제에서 수신 스택 추적을 난독 처리하므로 Google Play 콘솔에서 문제를 검토 할 수 있습니다.
2. 로컬 SDK 도구 retrace.sh/retrace.bat를 사용하십시오.
때로는 빌드 버전을 릴리스로 변경하여 릴리스하고 실행하여 앱의 릴리스 버전을 실행하여 프로덕션에서 발생하지 않도록 (플레이 스토어로 릴리스 할 때) 오류를 교차 확인하고 수정하려고합니다.
난독 처리 된 스택 추적을 읽을 수있는 스택 추적으로 변환하려면 retrace 스크립트 ( Windows의 경우 retrace.bat, Mac / Linux의 경우 retrace.sh )를 사용하십시오.
그것은에 위치한 <sdk-root>/tools/proguard/bin/
디렉토리.
<sdk-root>
모든 안드로이드 라이브러리와 SDK가 설치된 곳입니다.
스크립트는 mapping.txt 파일과 스택 추적을 사용하여 읽을 수있는 새 스택 추적을 생성합니다.
명령 구문 :
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
예를 들면 다음과 같습니다.
retrace.bat -verbose mapping.txt obfuscated_trace.txt
프로덕션 오류를 미리 확인하는 것이 편리하므로 로컬 버전의 난독 처리를 선호합니다.
도움이 되길 바랍니다.