ドキュメント

Apple ファミリ共有

製品が Apple ファミリ共有の対象となるかどうかを確認し、後でその共有購入へのアクセス権をファミリが失うなど、エンタイトルメントが無効になったときにトリガーするハンドラーを登録する方法を説明します。
読み終わるまでの所要時間 3 分最終更新 2ヶ月前

Apple は、自動更新可能なサブスクリプションと非消費型アプリ内課金のファミリ共有をサポートしています。ファミリ共有を使用するには、アプリストア Connect で各製品に対して個別に有効にします。設定手順については、「 アプリケーション内課金のファミリ共有を有効にする 」を参照してください。

ファミリ共有の適格性

Apple 製品メタデータの
isFamilyShareable
フィールドを使用して、製品が共有可能かどうかを確認します。
Product.ProductMetadata.GetAppleProductMetadata()
を呼び出してこのメタデータにアクセスします。
ブーリアン IsProductFamilyShareable(プロダクトプロダクト) { var appleProductMetadata = product.metadata.GetAppleProductMetadata(); return appleProductMetadata?.isFamilyShareable ?? false; }

取り消されたエンタイトルメント

アプリケーションでは、ファミリが共有購入にアクセスできなくなったケースをハンドルする必要があります。これを行うには、
StoreController.AppleStoreExtendedPurchaseService
を使用して IAppleStoreExtendedPurchaseService.OnEntitlementRevoked のリスナーを追加します。
このイベントは、Apple が製品へのアクセスを取り消すと発生します。失効した製品IDをリスナーに渡して、アプリケーションがそれに応じてアクセスを更新できるようにします。共有購入へのアクセスを失うことは、このイベントをトリガーする可能性のあるシナリオの 1 つにすぎません。
以下のサンプルを使用して、Apple が購入へのアクセスを取り消したときに製品 ID を受け取るように、Entitlement Revocation イベントのリスナーを登録します。
void AddAppleListeners(){ var applePurchaseService = UnityIAPServices.StoreController().AppleStoreExtendedPurchaseService; if (applePurchaseService != null) { applePurchaseService.OnEntitlementRevoked += EntitlementRevokedListener; }}void EntitlementRevokedListener(string productId){ Debug.Log($"Revoked product: {productId}");}