태그 보관물: android

android

Android Studio는 ProGuard 매핑 파일을 어디에 저장합니까? 파일 경로를

Android Studio에서 서명 된 APK를 컴파일 한 후 ProGuard 매핑 파일은 어디에 생성됩니까?

작동하지 않거나 파일 경로를 잊어 버렸는지 확실하지 않으며 강제 Google / 스택 오버플로 검색에서 이에 응답하지 않았습니다.



답변

build/outputs/proguard/release/mapping.txt응용 프로그램 모듈의 디렉토리에 있어야합니다 .

최신 버전의 ProGuard 및 Android Studio에서 파일은에 있습니다 build/outputs/mapping/release/mapping.txt.


답변

나를 위해 그들은에 'build/outputs/mapping/release'


답변

mapping.txt 파일을 외부 위치에 쓰도록 proguard를 구성하는 것이 더 깨끗하다는 것을 알았습니다. build/ 디렉토리 트리 하여 버전 관리에보다 편리하게 체크인 할 수있는 것이 더 .

이것을 달성하려면 proguard-rules.pro파일 에 이것을 넣으십시오 .

-printmapping mapping.txt

이것은 (아마도) 당신과 같은 디렉토리에 배치합니다 proguard-rules.pro 파일 . 궁극적으로 APK 파일과 동일한 디렉토리에 동일한 이름 (향기, 빌드 유형 등이 포함될 수 있음)으로 파일을 작성하려고합니다.

참고 : 내 경험상, 이것은 proguard 템플릿 파일 ( 여기서 다른 답변 에 대한 의견 제시자가 제안한)에 의해 지배 되지 않습니다 .

업데이트 : 여러 제품 맛이있는 경우 훨씬 나은 솔루션입니다 : https : //.com/a/31116608/444761


답변

생성되지 않았다는 것을 알았으므로 규칙 파일에 추가했습니다.

-printmapping 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

프로덕션 오류를 미리 확인하는 것이 편리하므로 로컬 버전의 난독 처리를 선호합니다.

도움이 되길 바랍니다.


답변

Android Studio 2.2.2 버전을 사용하고 있습니다. 나를 위해 그것은 다음 위치에 있습니다 :

디버그의 경우 :
\app\build\outputs\mapping\debug\mapping.txt

출시 :
\app\build\outputs\mapping\release\mapping.txt


답변

여기 사진에 있습니다-매핑 폴더에 있습니다.