PreEmptive Protection - DashO v8.1 User Guide

Gradle ビルド環境

概要

このセクションでは、PreEmptive Protection - DashO を使用するために既存の Android プロジェクトを構成する手順をひととおり示します。ビルド環境として Gradle を使用する場合、あるいは APK ファイルを直接操作する場合では、セットアップ プロセスが異なります。DashO を Android の Gradle ビルド プロセスに統合することができます。

Gradle ビルド スクリプトに統合された場合、DashO は Java クラス ファイルを取り込み、それらを難読化してインストルメントします。その後、ビルド スクリプトは難読化されたバージョンを取り込んで、Android APK の内部にパッケージ化される classes.dex ファイルを作成します。

必要条件

Android プロジェクトがある必要があります。これは Eclipse、Android Studio から、または手動で作成することができます。Eclipse または Android Studio で作成する場合は、プロジェクトの物理的な場所を知っていなければなりません。Eclipse および Android Studio は、Android の SDK がどこにあるかを知っていて、適切な参照を作成します。

DashO は、Android SDK と Android プロジェクトの場所にアクセスできる必要があります。それらは、ファイル システムからアクセスできるのであれば、必ずしも物理的に同じマシン上にある必要はありません。それらすべてが同じマシン上にない場合は、ネットワーク ドライブを割り当ててアクセスを提供することができます。

メモ:

既に Ant 環境用に構成された DashO プロジェクトがある場合は、Eclipse(Ant)から Android Studio(Gradle)への移行の指示に従ってください。

PreEmptive Protection - DashO のための、Android プロジェクトのステージング

Android Studio を使用してプロジェクトをセットアップしている場合は、既に Gradle ビルドがあります。Eclipse を使用していて、Gradle ビルドがない場合は、Android の Eclipse ADT プラグイン(http://developer.android.com/sdk/installing/migrate.html)を使用することができます。

build.gradle ファイルを作成したら、プロジェクトをコンパイルします。

gradlew build

これにより Gradle がダウンロードされ、Android プロジェクトが構築されます。

ウィザードによる PreEmptive Protection - DashO プロジェクトの作成

New Project Wizard は、DashO の起動時に自動的に起動することができます。DashO が既に実行されている場合は、[File|New Project|Wizard]から起動できます。[Select Application Type]ウィザード画面で "An Android application" を選択し、次に "Gradle" ビルド環境を選択して、[Select Android Project]画面で Android プロジェクト ディレクトリを入力します。

ウィザードは、その作業のほとんどを自動的に実行します。JAR をサポートするための参照を自動的に検出しようとしますが、場合によっては、それらを手動で追加することも必要となります。ウィザード画面のうちの 1 つで、追加の JAR を追加する機会が与えられます。その画面では android.jar(メイン Android API ライブラリ)のバージョンを変更することもできますが、ほとんどの状況下で、これを変更すべきではありません。

ウィザードは、project.dox というファイルを Android プロジェクト フォルダーのルートに保存します。このファイルには、このプロジェクトの DashO の構成がすべて含まれています。また、dasho.gradle を作成し、DashO を使ってコードを難読化できるように build.gradle を更新します。これをすぐにテストするには、コマンド プロンプトから gradlew assembleRelease を実行します。既定では、ウィザードはデバッグ ビルドの難読化をオフにします。

ウィザードの完全な手引きは、「概要」の Android アプリケーション セクションに記載されています。

PreEmptive Protection - DashO GUI を使って、難読化およびインストルメンテーションを構成する

さて、ステージングされた Android プロジェクトを DashO に読み込んだら、DashO GUI を使用して、望みどおりの構成にすることができます。プロジェクトを忘れずに保存してください。プロジェクトは project.dox ファイルを更新します。後で構成設定を変更する場合は、DashO を実行して project.dox ファイルを開き、変更を加えて保存します。

DashO GUI の段階的な説明については、ユーザー インターフェイス リファレンス セクションを参照してください。

GUI 内でプロジェクトを構築すると、構成内容をテストして、正しくビルドするかどうかを確認することができます。

Gradle を使って、完全なビルドを作成する

完全なビルドを実行するには、コマンド ラインで Android プロジェクト フォルダーへ移動し、gradlew build を実行します。エラーや警告が画面に出力されます。

お使いの環境が、同じ gradle スクリプトから複数の Android プロジェクトを構築するように設定されている場合は、まだ DashO を使用するように構成されていないプロジェクトについて、project.dox ファイルが見つからないことに関するエラーを受け取る場合があります。これを解決するには、そのプロジェクトの build.gradle ファイルに次の行を追加します。

dashOConfig { disabledForBuildTypes = ['debug', 'release']}

これは、プロジェクトが DashO を使用しようとするのを防ぎます。DashO を使用するようにそのプロジェクトを構成したら、上の行を削除する必要があります。

難読化された APK をエミュレーターにインストールする

Gradle ビルドは、build\outputs\apk というフォルダーを作成し、このフォルダーに異なるバージョンの APK を格納します。既定では、デバッグ バージョンは難読化されないので、必要なものの 1 つは、{プロジェクト名}-release-unaligned.apk です。タイムスタンプを再確認してください。これは、Gradle ビルドによって今作成されたものでなければなりません。

エミュレーターを実行している場合は、adb install {プロジェクト名}-release-unaligned.apk と入力します。これにより、実行中のエミュレーターに APK がインストールされます。その後、エミュレーターを使用し、アプリケーション一覧へ移動して、アプリケーションにアクセスすることができます。インストールしたアプリケーションは、デバイスにインストールされている他の Android アプリケーションと同様に表示されます。

メモ:

dasho.gradle を編集してデバッグ ビルドでの難読化を有効にし、その後 gradlew installDebug を実行して、エミュレーター上にインストールすることもできます。

リリース ビルドを作成および署名する

物理デバイスへのインストールに必要となるリリース ビルドを作成するには、署名キーを作成して、Android Gradle プラグインにこの情報を提供する必要があります。build.gradle 内部でこの情報を提供します。

android {
    ...
    signingConfigs {
        release {
            storeFile file("android.keystore")
            storePassword "パスワード"
            keyAlias "エイリアス"
            keyPassword "パスワード"
        }
    }
}

署名情報が追加されると、gradlew build はリリース用の署名付き APK を生成します。gradlew installRelease を実行すると、エミュレーター上でリリース ビルドをコンパイルしてインストールします。

メモ:

詳細については、『Android Gradle Plugin User Guide』および『DashO Gradle プラグイン ユーザー ガイド』を参照してください。

別のマシンで実行する

あるマシンから別のマシンへプロジェクト ディレクトリをコピーした後、gradlew build を実行した場合、DashO と Android SDK が他のマシン上で利用可能であれば、このコマンドは正常に動作します。DashO の新しい場所を指すように dasho.gradle を更新し、DashO Gradle プラグインが入っているディレクトリを指すように build.gradle を更新する必要があるかもしれません。

最善の解決策は、上記のさまざまなツールを 1 つのビルド マシンから利用できるように、前もって環境を準備しておくことです。Android プロジェクトを既に作成している場合、あるいは環境を設定した後、新しいプロジェクトを作成できない場合は、build.gradledasho.gradle、および/または 1 つ以上の *.properties ファイルを編集して、正しい場所を反映させる必要があるかもしれません。このことは、何かが見つからないと主張するエラー メッセージを受け取るとわかります。その場合は、ビルドが探している場所を書き留めて、ビルド環境の同様の場所を検索し、参照を更新してください。

PreEmptive Protection - DashO Version v8.1.0. Copyright © 2017 PreEmptive Solutions, LLC