Apple ファミリー共有
概要
Apple では、自動更新サブスクリプションと非消費型のアプリ内課金を家族間で共有することを許可しています。この機能を使用するには、購入可能なプロダクトごとにファミリー共有を有効にする必要があります。App 内課金におけるファミリー共有の有効化 を参照してください。
ファミリー共有の可否
プロダクトをファミリー共有できるかどうかは、Apple プロダクトのメタデータにある isFamilyShareable フィールドで確認できます。このメタデータは、IStoreController.products を介して ProductMetadata.GetAppleProductMetadata() から取得できます。
bool IsProductFamilyShareable(Product product)
{
var appleProductMetadata = product.metadata.GetAppleProductMetadata();
return appleProductMetadata?.isFamilyShareable ?? false;
}
権利の取り消し
取り消された権利を処理するには、IAppleConfiguration.SetEntitlementsRevokedListener(Action<List<Product>> を通じてリスナーを指定します。このリスナーは、プロダクトが取り消されるたびに、取り消されたプロダクトのリストと共に呼び出されます。
void InitializePurchasing()
{
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.Configure<IAppleConfiguration>().SetEntitlementsRevokedListener(EntitlementsRevokeListener);
UnityPurchasing.Initialize(this, builder);
}
void EntitlementsRevokeListener(List<Product> revokedProducts)
{
foreach (var revokedProduct in revokedProducts)
{
Debug.Log($"Revoked product: {revokedProduct.definition.id}");
}
}