アプリ内課金(IAP)の実装について


アプリ内課金(IAP)の実装について

このページでは、これまでAmazonアプリ内課金(IAP)SDKを使用したことがない開発者の方、またはIAP APIを実装した経験がない開発者の方を対象に、IDEのセットアップ方法やIAPにおいて推奨される開発・テスト・申請のワークフローについて説明します。

最初はサンプルを使用した方がわかりやすいため、ここでは新規プロジェクトを一から作成せず、IAPサンプルアプリをIDEにインポートする方法を説明します。IAP APIの実装方法については、アプリ内課金(IAP)APIを組み込む方法を参照してください。

IAPに対応したAndroidアプリの作成に必要な手順は、IAP eBook(英語のみ)に詳しく記載されています。

SDKのダウンロード

Amazon Android SDKをまだダウンロードしていない場合は、コンピューターにダウンロードします。

Amazon Android SDKはこちらからダウンロード可能です([Android] リンクをクリックしてください)。

ファイルを展開すると、IAP SDKのファイルがAmazonInAppPurchasingというフォルダに作成されます。

開発環境のセットアップ: Android Studio

IDEとしてAndroid Studioを使用している場合でも、サンプルプロジェクトをインポートし、APKとしてエクスポートすることで、Androidデバイスで実行できるようになります。

Android Studio開発環境でIAPサンプルアプリを使用できるように設定するには、以下の手順に従います。

  1. Amazon-Android-SDKs.zipファイルをローカルコンピューターの任意の場所に展開します。
  2. Android Studioを起動します。
  3. IAPサンプルアプリをワークスペースにインポートします。

    1. [Welcome to Android Studio] 画面で [Import Project (Eclipse ADT, Gradle, etc.)] をクリックして、プロジェクトインポートウィンドウを開きます。
    2. [Select Eclipse or Gradle Project to Import] ウィンドウでAmazon-Android-SDKs.zipファイルの展開先に移動し、/AmazonInAppPurchasing/examplesを選択します。
    3. 3つあるIAPサンプルプロジェクトのいずれかのディレクトリを選択して [OK] をクリックし、[Import Project from ADT] 画面に移動します。
    4. [Import Project from ADT] 画面でインポート先のディレクトリを選択し、[Next] をクリックします。
    5. 表示された画面でデフォルト設定の全チェックボックスをオンのままにして、[Finish] をクリックし、IAPサンプルアプリプロジェクトをインポートします。
    6. 上記の手順をサンプルアプリごとに繰り返します。
  4. IAP 2.0 JAR/ライブラリファイルを追加します。
    1. Android Studioの左上隅(プロジェクトタブのすぐ下)のドロップダウンメニューから [Project] を選択して(ほかの選択肢には [Android][Packages] があります)、プロジェクトのディレクトリ構造をツリー形式で表示させます。
    2. プロジェクトのappディレクトリで、新規ディレクトリを作成して「libs」と名付けます。
    3. IAP 2.0 JARファイルをこのlibsディレクトリにコピーします。

      Macを使用している場合は、libsファイルを右クリックし、コンテキストメニューから [Reveal in Finder] を選択します。これでAmazonInAppPurchasingからIAP 2.0 JARファイルを新しいlibsディレクトリにコピーできるようになり、ディレクトリ表示を更新すると同ファイルがディレクトリに表示されるようになります。

    4. IAP 2.0 JARファイルを右クリックし、[Add as Library] を選択します。

      IAPライブラリがプロジェクトのGradle依存関係のリストに追加され、サンプルアプリプロジェクトをビルドできるようになります。

      : Gradleを使用してライブラリを追加する場合は、build.gradleファイルを開き、このファイルの依存関係(dependencies)セクションに以下のコードを追加します。次に、build.gradleファイルの上部に表示される [Sync Now] リンクをクリックし、変更を同期します。

      dependencies {
      ...
      compile fileTree(dir: 'libs', include: ['*.jar'])
      }
      
    5. 上記の手順をサンプルアプリプロジェクトごとに繰り返します。
  5. サンプルアプリのAPKを生成します。
    1. Androidモバイルデバイスを開発用コンピューターに接続します。
    2. Android Studioで [Debug] をクリックして使用するデバイスを選択し、そのデバイスにアプリをインストールします。

これで、このサンプルアプリをモバイルデバイス上で実行できるようになりました。

注:実際に開発したアプリをAmazonアプリストアに申請すると、APKが署名されているかどうかにかかわらず、Amazonの署名がアプリに適用されます。

IAPとの互換性がないR8による最適化

Android Studioの最新アップデートの影響で、Gradle 3.4.0以降を使用している場合にR8コンパイラによる最適化設定がデフォルトで有効になりました。そのため、適切な対処をしなければAmazonアプリストアでIAPアイテムを購入できなくなっています。Androidドキュメントのアプリの圧縮、難読化、最適化には、次のように説明されています。

Android Gradleプラグイン3.4.0以降を使用したプロジェクトのビルドでは、プラグインがProGuardを使用してコンパイル時のコード最適化を実行することがなくなりました。その代わり、プラグインはR8コンパイラと連携してコンパイル時タスクを実行します。

App Testerのセットアップ

Amazonでは、IAPのユニットテスト用にApp Testerというツールを提供しています。まずはIAPサンプルアプリを利用して、このツールを試してください。

App Testerをインストールし、App Testerでサンプルアプリを実行できるようにするには、以下の手順に従います。

  1. App Testerをインストールして構成する方法の手順を実行します。
  2. adb pushコマンドを使用して、サンプルアプリからamazon.sdktester.jsonファイルをデバイスの/mnt/sdcard/amazon.sdktester.jsonパスにコピーします。

    $ adb push <_Your_JSON_File_Folder_>/amazon.sdktester.json /mnt/sdcard/`  
    
  3. App Testerユーザーガイドの手順に従って、App Testerを使用したアプリのテストについて理解を深めます。App Testerで実行するテストケースのセットアップ方法については、アプリ内課金(IAP)のテストケースを設計・実行する方法を参照してください。

アプリとIAPアイテムの申請

アプリのテストが完了したら、アプリとIAPアイテムをAmazonアプリストアに申請します。

単一のアプリ内課金(IAP)アイテムを作成・申請する方法を参照してください。