Unity Codeless IAP 忘備録(特にAndroidのリストア)(とAdMobメモを少しだけ)

↑一番参考になった記事。神、いわゆるゴッド。

基本的には上記記事を信じれば大体解決します。本当に感謝。

Codeless IAPは非推奨だと紹介している所もあるけれど問題無いと信じて進む。

IAP側のコールバック処理(OnPurchaseCompleteなど)が終了する前にIAPButtonをSetActive(false)にするとエラーが発生する。Coroutineなどで1秒程度(?)待機してからSetActive(false)を実行する。

実機での購入/リストアテストでは、Android側が厄介。

Androidで課金アイテムを追加実機で試す為には、内部テスト(またはクローズドテスト)のアップロードが必須。

テスト購入の設定のためには「Google Play Console」のトップから「設定>ライセンス テスト」でライセンス テスターとしての登録が必要。実際にテスター設定されているメールアドレスを登録し、ライセンス応答は「LICENSED」で良い(たぶん)。

ライセンステスターとしての登録にはある程度の待機時間が必要。

ライセンステスターとして無事に登録されていると購入画面で「テストカード」での購入が表示される。実際のクレジットカードでの購入画面が出た場合は、実際に請求されるので注意する。

Codeless IAPでAndroidのリストアを確実に行うためには「最初に開始するシーン」「アクティブなオブジェクト」「IAPListenerを追加」して「Consume Purchaseにチェックを入れ」「OnPurchaseCompleteに購入成功時の関数を追加する」ことが必要。特に「アクティブなオブジェクトにIAPListenerを追加」が重要。(AndroidではIAPスクリプトの初期化時にリストアが走るが、これがアクティブでなかった場合はAndroidでは実行されないため?)

余談(AdMob)

AdMobでのコールバック関数(HandleRewardAdLoadedみたいなやつ)はメインスレッドではない(?)ので、フラグの変更(IsRewardGet = trueみたいなやつ)程度にしておかないとエラーが出る。それをUpdateで適宜チェックするのがシンプル実装……だけれど、なんか気持ち悪いよね。

余談(プロビジョンファイル)

iOSアプリでAdMobを使う際はワイルドカード証明書は使えない(?)ので個別で用意する(詳細不明)

タイトルとURLをコピーしました