回答:
これは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
新しいパスです。
build/
バージョン管理により簡単にチェックインできるように、ディレクトリツリー外の場所にmapping.txtファイルを書き込むようにproguardを構成する方がわかりやすいと思いました。
これを実現するには、これをproguard-rules.pro
ファイルに入れます。
-printmapping mapping.txt
これは、(ほとんどの場合)proguard-rules.pro
ファイルと同じディレクトリに配置します。最終的には、APKファイルと同じディレクトリに、同等の名前(フレーバー、ビルドタイプなどが含まれる可能性があります)を付けて書き込みます。
注:私の経験では、これは proguardテンプレートファイルによって無効にされません(これは、コメンターがここで別の回答を提案したものです)。
更新:複数の製品フレーバーがある場合、これははるかに優れたソリューションです:https : //stackoverflow.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
}
いくつかの注意点:
mapping.txtファイルは、ProGuardでリリースビルドを作成するたびに上書きされるため、新しいリリースを作成する前に、まずそのファイルのバックアップを作成してください。古いバージョンのアプリからのスタックトレースを難読化するのに役立ちます。
それとは別に、コードを難読化するには2つの方法があります。
1. mapping.txtファイルをGoogle Play Consoleにアップロードします。
アプリをGoogle Playで公開するときに、APKの各バージョンのmapping.txtファイルをアップロードできます。その後、Google Playはユーザーが報告した問題から受信スタックトレースを難読化し、Google Play Consoleで確認できるようにします。
2.ローカルSDKツールretrace.sh/retrace.batを使用します。
アプリのリリースバージョンを(ビルドバリアントをリリースに変更して実行することにより)実行して、エラーをクロスチェックして修正し、本番環境で発生しないようにします(プレイストアにリリースしたとき)。
難読化されたスタックトレースを読み取り可能なものに自分で変換するには、リトレーススクリプトを使用します(Windowsではretrace.bat、Mac / Linuxではretrace.sh)。
これは、に位置して<sdk-root>/tools/proguard/bin/
ディレクトリ。
<sdk-root>
すべてのAndroidライブラリと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