Apple“托管”我的 IAP 意味着什么?

Swe*_*per 4 in-app-purchase ios app-store-connect

在 iTunesConnect 中,我看到一个选项可以让 Apple 为我托管我的应用内购买项目。我对此感到很困惑,所以我做了一些研究并发现了这一点

Apple 可以为您托管您的非消耗性产品。Apple 为用户提供可靠且熟悉的体验,并负责将产品分发到他们的设备并在需要时恢复产品。

我现在更迷茫了。

关于我的应用内购买:

  • 非消耗品
  • 解锁一些额外内容
  • 我设置了一个值来UserDefaults指示是否购买IAP
  • 我在显示额外内容之前检查该值。如果是false,我将视图的hidden属性设置为 true。

正如你所看到的,我不需要任何“主机”。苹果无需“负责将产品分发到其设备并在需要时恢复产品”。我认为任何 IAP 都不需要“托管”。

我认为我不需要 Apple 为我托管 IAP。它是否正确?另外,需要由 Apple 托管的 IAP 示例是什么?为什么需要托管?

Mob*_*Ben 5

根据您所说的,您的“额外内容”已经融入您的捆绑包中。因此,您使用购买机制作为代码的“触发器”来更新 UserDefaults,这反过来又允许代码呈现额外的内容。

\n\n

在这种情况下,正如您已经说过的,您不需要托管内容。Apple 托管内容是您能够下载要由应用程序使用的内容的一种方式。从物流的角度来看,通过 Apple 托管可以更轻松地管理和检索正确的内容。否则,如果您选择将内容下载到您的应用程序,您将需要自己构建/已经拥有该基础设施。

\n\n

为什么要下载内容?您当前的机制很容易被绕过。人们需要做的就是更新您的用户默认值,这可以在越狱设备中轻松完成。完成后,由于您的内容已烘焙到您的捆绑包中,因此他们将获得该内容。

\n\n

来看一个例子。假设您有一款销售关卡的游戏。总共有 10 个级别。该应用程序本身可以免费下载,您可以为用户提供 1 个解锁级别。用户将需要购买其他级别。我们还可以说级别很大。好像每个50MB。这意味着,如果您烘焙所有内容,您的应用程序包将大于 150MB,这意味着他们必须在 Wifi 上才能下载该应用程序。我已经引用了有关如何使用 UserDefaults 来解锁越狱设备内容的问题。这种情况对于托管内容来说是有好处的,无论是通过苹果还是其他方式。然后,每个级别将在购买时单独下载。托管内容还提供其他灵活性,例如将内容与应用程序包解耦,这意味着如果您要更新内容,则不会被迫更新应用程序。

\n\n

从这里的苹果文档

\n\n
\n

您可以将该内容嵌入到您的应用程序\xe2\x80\x99s 捆绑包中,也可以根据需要\n 下载它\n\xe2\x80\x94 每种方法都有其优点和缺点。如果您的应用程序包中包含的内容太少,则即使是很小的购买,用户也必须等待下载。如果您在应用程序包中包含太多内容,则应用程序的初始下载时间会过长,并且对于不购买相应产品的用户来说,\n 空间会被浪费。此外,如果您的应用太大,用户将无法通过蜂窝网络下载它。

\n\n

在您的应用中嵌入较小的文件(最多几兆字节),尤其是当您希望大多数用户购买该产品时。用户购买应用程序包中的内容时,\n 可以立即提供该内容。但是,要添加或更新应用程序包中的内容,您必须提交应用程序的更新版本。

\n\n

需要时下载更大的文件。将内容与应用程序包分开可以使应用程序\xe2\x80\x99 的初始下载较小。例如,游戏可以在其应用程序包中包含第一个关卡,并让用户在购买时下载其余关卡。\xe2\x80\x99。假设您的应用\n 从服务器获取其产品标识符列表,并且未\n 硬编码到应用程序包中,则\xe2\x80\x99 不需要重新提交应用来添加或更新已下载的内容\n通过您的应用程序。

\n
\n