Zoho Appticsを使用した難読化解除

Zoho Appticsを使用した難読化解除

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

概要

コードの難読化とは、すべてのクラスとそのメソッド名を、正常な動作を維持しながらリバースエンジニアリングが困難になるように変更する処理です。ProGuard(およびその後継のR8)は、Android向けの標準Javaコード最適化・難読化ツールです。コンパイル時に処理を実行し、Androidアプリの動作を90%高速化し、サイズを20%削減するのに役立ちます。

開発環境にAndroid Studioを使用している場合、インスタント実行ではマッピングファイルは生成されません。マッピングファイルを生成するには、[APKをビルド]オプションを選択する必要があります。ビルドが完了すると、ビルドプロセスの開始方法に応じて、mapping.txtというシンボルファイルが<module-name>/build/outputs/mapping/release/または<module-name>/build/outputs/mapping/debug/,に生成されます。

クラッシュレポートの難読化解除

コードの難読化はコードの最適化に役立ちますが、デバッグが難しくなる場合もあります。難読化により、クラッシュや問題の診断に必要なクラス名、メソッド名、シンボルファイル、デバッグ情報の一部が失われます。mapping.txtファイルを使用して、元のスタックトレースや、アプリのコード内のクラスとメソッドの名前を復元する処理を、難読化解除と呼びます。

Zoho Appticsでは、Androidアプリの各ビルドのマッピングファイルをアップロードして管理できます。

ProGuardのルール

ProGuardを使用してクラスを難読化すると、Appticsプラグインによってマッピングファイルが自動的にアップロードされます。ProGuardファイルにルールを追加することで、アプリのコードを難読化する方法を変更できます。proguard-rules.proファイルに次のルールを追加します。
  1. -keep class com.zoho.zanalytics.**
  2. -dontwarn com.zoho.zanalytics.**
Info
SDKの実装については、 Android向けクラッシュSDKガイド を参照してください。

ProGuardファイルの手動追加

  1. [開発者]→[シンボルとマッピング]に移動します。ドロップダウンメニューから、アップロードするProGuardのマッピングファイルとパッケージ名を選択します。
  2. [アップロード]をクリックすると、ポップアップが表示されます。

  1. ドロップダウンから、該当するアプリのバージョンとビルドのバージョンを選択します。
  2. [ファイルを選択]をクリックし、該当する.txtファイルを選択します。
  3. [アップロード]をクリックすると、ProGuardのマッピングファイルがコンソールに表示されます。