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ファイルと同じディレクトリに、同等の名前(フレーバー、ビルドタイプなどが含まれる場合があります)で書き込む必要があります。
注:私の経験では、これはnotproguardテンプレートファイル(他のコメンターによって提案されました answer ここに)。
更新:複数の製品フレーバーがある場合、これははるかに優れたソリューションです。 https://stackoverflow.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
}
いくつかの落とし穴:
mapping.txtファイルは、ProGuardでリリースビルドを作成するたびに上書きされるため、新しいリリースを作成する前にまずそのファイルのバックアップを作成してください。アプリの古いバージョンからのスタックトレースを難読化するのに役立ちます。
それとは別に、コードを難読化するには2つの方法があります。
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>
は、すべてのAndroidライブラリと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