XamarinでAmazon IAP対応

Amazon App Store対応するにあたって、やらなきゃいけなかったのはアプリ内課金の実装差し替え。Amazon Developerの登録からアプリ申請まで、のべ5時間くらいかなー。Google Play側で使った資源を使えば特に問題なかった。(114pxのアイコンだけ別途必要だった)
ただ、アプリ内課金対応で一部うまくいかなかった所があるので共有。

結論としては(一部)うまくいかない

IAmazonIapV2 iapService = AmazonIapV2Impl.Instance;
// I get an exception "initializer for 'Builder' threw an exception.
//  ---> Java.Lang.UnsatisfiedLinkError".
//   The exception text states that 
//   it could not find the library "libAmazonIapV2Bridge.so".   

・手持ちの適当なAndroid端末(X4-SH)でデバッグ実行すると
 上記コードの1行目、AmazonIapV2iImple.Insetanceの取得時に例外発生。
 状況は完全にこのURLと同じ。​
・古いKindle Fire 5 では問題なく動くので、やはりadd-in側の問題っぽい。

add-in works OK with an ARM device, and does not work with an ARM64 device. 

このへんを参考に、libAmazonIapV2Bridge.soを追加してあげればいいのかな?と思ったりしてるけど、とりあえず「このデバイスではAmazon版じゃなくてGoogle Play版使ってね」って言って逃げておくことにした。。

スクリーンショット 2021-06-27 10.51.20

対応手順

Amazonの提供するIAP Plugin for Xamarin(v2.0)をダウンロード
こちらの手順で.xam内のAmazonIapV2Android.dllを参照設定に追加し、
 AmdroidManifest.xmlにてIAP Response Receiverを宣言
・Plugin.InAppBillingが担っていたアプリ内課金対応コードを置き換え
 (awaitせずイベントハンドラを登録しておいて結果を別途待つ感じ)
App Testerが優秀なので、実装と単体テストは特に困らなかった!
 実装のイメージはこのあたりを参考にした。C#でもやる事は一緒。

APKファイル追加したら怒られた

まぁ、そうだよね、、多分俺のせいじゃないけど、、、

スクリーンショット 2021-06-27 11.14.03

まぁ、Amazon側は「うちの端末はハイブリッドだから別にいいんじゃね?」って方針っぽいし、アドインがバージョンアップされるまでこのままでいいかなー。。

まぁ、特に問題なく審査は通過しましたー。やったね!

スクリーンショット 2021-06-29 12.41.29


この記事が気に入ったらサポートをしてみませんか?