programing

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

sourcejob 2023. 8. 2. 09:01
반응형

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

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

제대로 작동하지 않는지 또는 파일 경로를 잊어버렸는데 Google/Stack Overflow 필수 검색에서 이에 대한 응답이 없는 것인지 확인되지 않았습니다.

은 다음위치있합니다야어에 .build/outputs/proguard/release/mapping.txt응용 프로그램 모듈의 디렉터리에 있습니다.

및Studio의 이 파일은 ProGuard 의 Android Studio 최신및전에위있습에 .build/outputs/mapping/release/mapping.txt.

는 그들이 그들게은에에 .'build/outputs/mapping/release'

지도 작성을 위해 프로가드를 구성하는 것이 더 깨끗하다는 것을 알게 되었습니다.txt 파일을 외부 위치로 이동합니다.build/디렉터리 트리를 사용하여 버전 제어에 보다 편리하게 체크인할 수 있습니다.

, 여러분의 를위해당을, ▁your▁this에 이것을 넣어보세요.proguard-rules.pro파일 이름:

-printmapping mapping.txt

이렇게 하면 (아마도) 당신과 같은 디렉토리에 배치될 것입니다.proguard-rules.pro파일. 궁극적으로 APK 파일과 동일한 디렉토리에 동일한 이름(flavor, build type 등)으로 쓰기를 원할 수 있습니다.

참고: 제 경험에 따르면, 이것은 프로가드 템플릿 파일(코멘터가 여기서 다른 답변에 제안한 것)에 의해 무시되지 않습니다.

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

생성되지 않는 것을 발견하여 규칙 파일에 추가했습니다.

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

이 질문에 대답하는 것은 꽤 늦었지만 누군가 내 대답을 필요로 할 경우를 대비해서입니다.

해독할 매핑 파일 위치:

ProGuard는 파일을 app/build/outputs/mapping/FLAV/release/mapping.txt에 저장합니다.

일반적으로 디버그 모드에서는 일반적으로 난독화를 사용할 수 없기 때문에 매핑 파일이 필요하지 않습니다.그렇지 않다면 build.gradle 파일에 디버그 변형에 대한 아래 코드가 있는지 확인하십시오.

debug {
    minifyEnabled false
    debuggable true
}

일부 Gotchas:

지도 제작ProGuard로 릴리스 빌드를 생성할 때마다 txt 파일을 덮어쓰므로 새 릴리스를 생성하기 전에 해당 파일의 백업을 먼저 수행하십시오.이전 버전의 앱에서 난독화된 스택 추적에 도움이 됩니다.

이 외에도 코드를 난독화하는 두 가지 방법이 있습니다.

매핑을 업로드합니다.txt 파일에서 Google play 콘솔로:

Google Play에 앱을 게시할 때 매핑을 업로드할 수 있습니다.APK의 각 버전에 대한 txt 파일.그런 다음 Google Play는 사용자가 보고한 문제에서 들어오는 스택 추적을 해독하여 Google Play 콘솔에서 검토할 수 있습니다.

로컬 sdk 도구 사용 retrace.sh/retrace.bat :

때로는 앱의 릴리스 버전을 실행하여(빌드 버전을 릴리스로 변경하고 실행함으로써) 오류를 교차 확인하고 수정하여(플레이 스토어에 릴리스할 때) 프로덕션에서 오류가 발생하지 않도록 하려는 경우가 있습니다.

난독화된 스택 추적을 읽을 수 있는 스택 추적으로 직접 변환하려면 재추적 스크립트(재추적)를 사용합니다.다시 추적합니다.shin Mac/리눅스).

위치는 다음과 같습니다.<sdk-root>/tools/proguard/bin/디렉토리입니다.

<sdk-root>모든 안드로이드 라이브러리와 sdk가 설치된 곳입니다.

스크립트가 매핑을 가져옵니다.txt 파일 및 스택 추적을 통해 읽기 쉬운 새로운 스택 추적을 생성합니다.

명령 구문:

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

예:

retrace.bat -verbose mapping.txt obfuscated_trace.txt

나는 생산 오류를 사전 확인하기에 매우 편리하기 때문에 난독화의 로컬 버전을 선호합니다.

도움이 되길 바랍니다.

enter image description here

다음은 사진입니다. 매핑 폴더에서 찾을 수 있습니다.

안드로이드 스튜디오 2.2.2 버전을 사용하고 있습니다.다음 위치에 있습니다.

디버그의 경우:

릴리스:

아직 매핑을 검색 중인 사람이 있습니다.txt:

minifyEnabled in build.gradle을 true로 설정해야 합니다.

Android Studio 4.2 Beta 4를 사용하고 있는데 표준 설정이 잘못된 것입니다.

minifyEnable이 false로 설정되어 있으면 빌드가 "minimized"되지 않으므로 매핑 파일은 물론 필요하지 않지만 Google-Play-console은 매핑 파일을 요청합니다.

초보자에게는 매우 혼란스럽습니다.

누군가 파일이 어디에 있는지 알려줘도 저는 멍청하고 길을 잃기 때문입니다.

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

Proguard[정보] 출력 위치

<module_name>/build/outputs/mapping/<buildType>/
//e.g.
/Users/alex/Desktop/MyProject/MyModule/build/outputs/mapping/releasefree

언급URL : https://stackoverflow.com/questions/25724645/where-does-android-studio-save-the-proguard-mapping-file

반응형