【发布时间】:2018-08-16 21:27:12
【问题描述】:
我们有适用于 Android 和 iOS 的移动应用程序。该应用程序有两个版本免费和完整。要使用完整版,您必须购买许可证。许可证与设备链接,您只能在一台设备上使用许可证。您可以在我们的电子商店、应用程序和其他应用程序中购买完整的应用程序。我们自己管理许可证,今天一切正常。
我们今天发布了新的 iOS 版本,但该版本被拒绝,因为可能会使用应用内购买 API 以外的方式购买应用。我们不能使用应用内购买API,因为购买的应用是和apple ID关联的,所以用户可以在每台设备上使用应用,但我们只需要将应用与一个设备关联。
有没有可能如何制作它?谢谢。
【问题讨论】:
-
您想要做的似乎非常“违背常规”,因为 Apple 似乎正在切断对 MAC 地址等独特设备功能的访问。至于实现类似的东西,我想到了两件事:UIDevice.identifierForVendor 和 ASIdentifierManager.advertisingIdentifier。或者,您可以考虑生成唯一令牌并将其存储在设备上不会备份的位置,而不是识别特定设备。
-
感谢您的回复。我已经有了识别设备的机制,但他在购买方面仍然存在问题。例如,Apple ID 为“XXX”的用户在其 iPhone 上通过应用内购买 API 购买许可证,然后在其 iPad 上下载应用。根据 Apple 的说法,iPad 上也有完整版(因为相同的 Apple ID)并且不能购买另一个许可证。但我们的商业模式是 1 个许可证 = 1 个设备。我能够检测到这种情况并告诉用户:“如果您可以在此设备 (iPad) 上获得许可,请联系我们的支持人员并直接购买,而不是通过应用内购买 API”。你认为这是可能的方法吗?
-
应用内购买有两种类型:消耗品和非消耗品。从您的情况来看,这看起来像是一个消耗性的应用内购买。您说您已经可以区分设备;在这种情况下,在应用内购买交付时,您可以生成绑定到该特定设备的许可证代码。应用程序的“收据”中还存储了一个购买日志,每次购买都与一个唯一的交易 ID 相关联,您可以将其存储在服务器上,并在未来需要时使用它来恢复许可证。
标签: ios in-app-purchase app-store mobile-application license-key