Android Studio는 ProGuard 매핑 파일을 어디에 저장합니까?
Android Studio에서 서명 된 APK를 컴파일 한 후 ProGuard 매핑 파일은 어디에 생성됩니까?
작동하지 않거나 파일 경로를 잊어 버렸는지 확실하지 않으며 필수 Google / Stack Overflow 검색에서 이에 응답하지 않았습니다.
build/outputs/proguard/release/mapping.txt응용 프로그램 모듈의 디렉토리에 있어야합니다 .
최신 버전의 ProGuard 및 Android Studio에서 파일은에 있습니다 build/outputs/mapping/release/mapping.txt.
나를 위해 그들은에 'build/outputs/mapping/release'
mapping.txt 파일을 build/디렉토리 트리 외부의 위치에 쓰도록 proguard를 구성 하여 버전 관리에보다 편리하게 체크인 할 수있는 것이 더 깔끔하다는 것을 알았습니다 .
이것을 달성하려면 proguard-rules.pro파일 에 이것을 넣으십시오 .
-printmapping mapping.txt
이것은 아마도 proguard-rules.pro파일 과 같은 디렉토리에 위치 할 것입니다 . 궁극적으로 APK 파일과 동일한 디렉토리에 동일한 이름 (향기, 빌드 유형 등이 포함될 수 있음)으로 파일을 작성하려고합니다.
참고 : 내 경험상, 이것은 proguard 템플릿 파일 ( 여기서 다른 답변 에 대한 의견 제시자가 제안한)에 의해 지배 되지 않습니다 .
업데이트 : 여러 제품 맛이있는 경우 훨씬 나은 솔루션입니다 : https : //.com/a/31116608/444761
생성되지 않았다는 것을 알았으므로 규칙 파일에 추가했습니다.
-printmapping build/outputs/mapping/release/mapping.txt
Android Studio 2.2.2 버전을 사용하고 있습니다. 나를 위해 그것은 다음 위치에 있습니다 :
디버그의 경우 : \app\build\outputs\mapping\debug\mapping.txt
출시 : \app\build\outputs\mapping\release\mapping.txt
이 질문에 대답하기에는 꽤 늦었지만 누군가 내 대답이 필요한 경우를 대비하여.
비난 독화 할 매핑 파일의 위치 :
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
프로덕션 오류를 미리 확인하는 것이 편리하므로 로컬 버전의 난독 처리를 선호합니다.
도움이 되길 바랍니다.
여기 그림이 있습니다-매핑 폴더에 있습니다.
누군가가 파일의 위치를 알려주더라도 멍청하고 길을 잃기 때문에 :
cd StudioProjects/fooProject
find . -name "mapping.txt" | xargs less
'Programming' 카테고리의 다른 글
| 버전 번호는 어떻게합니까? (0) | 2020.06.04 |
|---|---|
| 자동 레이아웃을 사용하는 경우 CALayer의 기준점을 어떻게 조정합니까? (0) | 2020.06.04 |
| PHP-거짓 일 때 부울을 거짓으로 반향하십시오. (0) | 2020.06.04 |
| MySQL에서 날짜 시간이 오늘보다 크거나 같음 (0) | 2020.06.04 |
| 데이터베이스의 기본 데이터 정렬을 변경하는 방법은 무엇입니까? (0) | 2020.06.04 |
