Google Play請求サービス対応Appstore SDK
既存のAndroidアプリにGoogle Play Billing Libraryが既に統合されている場合、Google Play請求サービスAPI対応Appstore SDKを使用すると、最小限の変更でアプリをAmazonアプリストアに移植できます。Google Play請求サービスAPI対応Appstore SDKは、消費型アイテムと非消費型アイテムのアプリ内課金(IAP)をサポートしています。定期購入型アイテムのIAPはサポートされていません。
次の表は、Google Play Billing Library、Amazon Appstore SDK v3.0.3、Google Play請求サービスAPI対応Amazon Appstore SDK v4.0.0の機能を比較したものです。
機能 | Google Play Billing Library | Appstore SDK v3.0.3 | Google Play請求サービスAPI対応Appstore SDK v4.0.0 |
---|---|---|---|
定期購入型アイテム | 注を参照 | ||
非消費型アイテム | |||
消費型アイテム | |||
デジタル著作権管理(DRM) |
Appstore SDKのダウンロード
Google Play請求サービスAPI対応Appstore SDKをダウンロードするには、SDKのダウンロードにアクセスしてください。このダウンロードには、Appstore SDKのJARファイルとAPIドキュメントが含まれています。
Appstore SDKの統合
Google Play請求サービスAPI対応Appstore SDKをアプリに統合する手順は以下のとおりです。
手順1:Appstore SDKをアプリに追加する
AndroidアプリプロジェクトにAppstore SDKを手動で追加します。
- appフォルダを展開し、libsを選択します(libsフォルダがない場合は、作成します)。appstore-sdk-compat-beta-4.0.0.jarファイルをこのディレクトリに貼り付けます。
- appフォルダのbuild.gradleファイルを開き、appstore-sdk-compat-beta-4.0.0.jarへの依存関係を追加します。以下に例を示します。
dependencies { implementation files('libs/appstore-sdk-compat-beta-4.0.0.jar') }
- IDEでbuild.gradleファイルの上部に表示される [Sync Now] をクリックして、プロジェクトを同期します。
必要に応じて、アプリからGoogle Play Billing Libraryの依存関係を削除できます。
手順2:Androidアプリにパブリックキーを設定する
このパブリックキーはアプリごとに一意で、Amazonアプリストアとアプリ間の安全な通信チャネルを確立します。Amazon開発者コンソールでパブリックキーを生成すると、対応するプライベートキーがAmazonによって生成されます。パブリックキーとプライベートキーは、ライセンス応答に署名するためのキーペアとなります。このキーのペアリングにより、アプリをインストールするユーザーが認証されていることを確認できます。
Androidアプリにパブリックキーを設定するには、次の手順を実行します。
- 開発者アカウントで開発者コンソールにログインします。
- [アプリ&サービス] > [マイアプリ] に移動します。既存のアプリがある場合は、そのアプリをクリックします。それ以外の場合は、[新規アプリを追加] ボタンをクリックし、[Android] を選択して新しいアプリを作成してから、[新規アプリの申請] ページで必要な情報を入力します。
- [アプリの情報] タブの [App BundleまたはAPKファイルを追加] セクションに移動します。
- [パブリックキー] をクリックします。
- [パブリックキー] ダイアログボックスが表示されたら、AppstoreAuthenticationKey.pemリンクをクリックしてPEMファイルをダウンロードします。このファイルにパブリックキーが含まれています。
- AppstoreAuthenticationKey.pemファイルをコピーします。それを、Androidアプリプロジェクトのapp/src/main/assetsフォルダに貼り付けます。このフォルダがない場合は、新たに作成します。
必要に応じて、Google Play請求サービスのパブリックキーの依存関係を削除できます。
手順3:AndroidManifest.xmlファイルでレシーバーを構成する
Appstore SDKは、すべてのアクティビティを非同期に実行します。アプリでは、BillingResponseReceiver
クラスを通じてAmazonアプリストアからブロードキャストインテントを受信する必要があります。このクラスがアプリ内で直接使用されることはありませんが、アプリでインテントを受信するには、マニフェストにBillingResponseReceiver
のエントリを追加する必要があります。
次のコード例は、Appstore SDK用のAndroidManifest.xmlファイルにBillingResponseReceiver
を追加する方法を示しています。アプリがAndroid 12以降を対象としている場合は、MainActivity
とResponseReceiver
でandroid:exported
を明示的にtrue
に設定する必要があります。
<application>
...
<activity android:name="com.amazon.sample.iap.entitlement.MainActivity"
android:label="@string/app_name" android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.amazon.device.iap.billingclient.api.BillingResponseReceiver" android:exported="true"
android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
<intent-filter>
<action android:name="com.amazon.inapp.purchasing.NOTIFY" />
</intent-filter>
</receiver>
...
</application>
手順4:importステートメントを更新する
アプリのコードベースでAppstore SDKのインポートを使用するようにGoogle Play請求サービスのインポートを更新します。そのためには、使用されているcom.android.billingclient.api
プレフィックスをすべて検索し、com.amazon.device.iap.billingclient.api
プレフィックスに置き換えます。
Appstore SDKのimportステートメントが解決されない場合は、Appstore SDKでサポートされていないことを示します。Amazonアプリストアと連携させるために、アプリ内での使用を削除または変更します。
次のステップ
Google Play請求サービスインターフェイスの実装を参照してください。