iOS - 在一台设备上支持多个用户帐户的应用中的可更新应用内购买

Posted

技术标签:

【中文标题】iOS - 在一台设备上支持多个用户帐户的应用中的可更新应用内购买【英文标题】:iOS - Renewable In-App Purchases in an app that supports multiple user accounts on one device 【发布时间】:2012-10-18 21:19:41 【问题描述】:

背景

我的 ios 应用支持多个用户帐户,但用户一次只能登录一个帐户。该应用程序还提供订阅服务(“信用”以可更新的应用内购买的形式)。

我无法将应用内订阅与购买它们的特定用户帐户分开。如果用户在帐户一上购买积分然后退出,而另一个用户登录帐户二(在同一设备上),SKPaymentQueue 仍会继续从帐户一购买的续订过程(并因此触发解锁这些学分的逻辑)。

问题

对于支持多个帐户的应用,处理可更新应用内购买的正确方法是什么?有什么方法可以防止购买“溢出”到同一设备上的其他帐户中?还有什么要注意的?

【问题讨论】:

【参考方案1】:

我很确定您尝试做的事情是不可能的。应用内购买与购买它们的 Apple ID 相关联。这意味着,如果用户登录到已购买订阅的 Apple ID,您总是会被告知它可用。一个用户不能多次购买同一个订阅。唯一的方法是在他们更改您应用中的用户时强制更改 Apple ID,我几乎可以肯定您不能这样做。

【讨论】:

我明白了。所以你说这是不可能的。也许有办法忽略基于某些条件的交易 - 或类似的东西? 您可以尝试通过事务 id 进行跟踪并将其存储在您的应用程序中的某个位置,但您需要将其保存在 iCloud 或其他东西中,以便在用户有多个设备时可以使用它。我不确定您到底想做什么,但使用消耗品购买而不是订阅可能更容易。 感谢您的帮助。我们决定取消多帐户“功能”——它只是让订阅服务中的事情变得过于困难。

以上是关于iOS - 在一台设备上支持多个用户帐户的应用中的可更新应用内购买的主要内容,如果未能解决你的问题,请参考以下文章

iOS 不会在一台设备上请求 AASA 文件,但适用于所有其他设备

如何在 iOS 和 Android 的给定时间检测用户是不是仅在一台设备上处于活动状态

如何使用 Cordova 通过移动应用程序对用户进行身份验证

Android中的adb连接与多个系统

来自一台服务器的多个应用程序的 IOS 推送通知

iOS URLForUbiquityContainerIdentifier 在某些设备上返回 nil