在iTunesConnect中,我看到一个选项让Apple主持我的应用内购买。我很困惑,所以我做了一些研究,发现this:
Apple可以为您托管您的非消耗品。 Apple为用户提供可靠和熟悉的体验,并处理将产品分发到他们的设备并在需要时恢复产品。
我现在更加困惑。
关于我的IAP:
UserDefaults
中设置了一个值,表明是否购买了IAP false
,我将视图'hidden
属性设置为true。如您所见,我不需要任何“主持人”。 Apple无需“处理将产品分发到其设备并在需要时恢复产品”。我认为任何IAP都不需要“托管”。
我想我不需要Apple为我主持我的IAP。它是否正确?此外,什么是需要由Apple托管的IAP示例?为什么需要托管?
答案 0 :(得分:2)
根据您所说的内容,您的"额外内容"已经烘焙到你的包中。因此,您正在使用购买机制作为"触发器"为您的代码更新UserDefaults,这反过来将允许代码显示额外的内容。
根据这种情况,正如您已经说过的那样,您不需要托管内容。 Apple托管内容是您能够下载应用程序使用的内容的一种方式。从物流角度来看,通过Apple托管可以更轻松地管理和检索正确的内容。否则,如果您将内容下载到您的应用程序,则需要自己构建/已经拥有该基础架构。
为什么要下载内容?您当前的机制很容易绕过。所有人都需要做的是更新您的UserDefaults,这可以在越狱设备中轻松完成。完成后,由于您的内容已被捆绑到您的包中,他们将获得该内容。
举个例子。让我们假设您有一个游戏,您正在销售关卡。总共有10个级别。该应用程序本身是免费下载,您为用户提供1个未锁定级别。用户需要购买其他级别。我们还说级别很大。每个50MB。这意味着,如果您在所有内容中加入,那么您的应用包将大于150MB,这意味着他们必须使用Wifi才能下载该应用。我已经引用了有关如何使用UserDefaults来解锁越狱设备内容的问题。无论是通过Apple还是其他方式,此方案都适用于托管内容。然后在购买时单独下载每个级别。托管内容还提供了其他灵活性,例如从应用程序包中分离内容,这意味着如果您要更新内容,则不必强制更新应用程序。
来自Apple文档here。
您可以将该内容嵌入应用套装中,也可以下载 根据需要 - 每种方法都有其优点和缺点。如果你 在您的应用包中包含太少的内容,用户必须等待 即使是小额购买也要下载。如果你的太多了 应用程序包,应用程序的初始下载需要太长时间,而且 对于没有购买相应的用户,浪费了空间 产品。此外,如果您的应用太大,用户将无法使用 通过蜂窝网络下载它。
在您的应用中嵌入较小的文件(最多几兆字节),尤其是如果 您希望大多数用户购买该产品。应用包中的内容 可在用户购买时立即提供。然而, 要添加或更新应用包中的内容,您必须提交 您应用的更新版本。
根据需要下载较大的文件。从您的应用中分离内容 捆绑使您的应用程序的初始下载保持较小。例如,游戏 可以在其应用包中包含第一级,让用户下载 他们购买时的其他级别。假设你的应用程序 从服务器获取产品标识符列表,而不是 在应用包中进行硬编码,您无需重新提交应用 添加或更新应用下载的内容。