Apple 会允许以这种方式使用 iAP 吗?

Would Apple allow the use iAP in this way?

我有一个应用程序,我不打算让用户付费删除广告。

但是,我希望我的 Beta 测试人员能够在最终项目中执行此操作。创建一个删除广告的 iAP(你实际上不能从应用程序内部访问,因为我不希望人们购买它)是否有效?我只想给我的测试人员一个来自 iTunes Connect 的促销代码,他们可以兑换(或者我发现这个名为 Tokens for Mac 的酷应用程序允许您创建链接)会删除广告。

我不想处理某种登录解决方案的编码,或者在应用程序中有任何人都可以使用的静态兑换代码(那样的话,如果用户给出他们的代码,任何人在技术上都可以使用它),我认为使用 Apple IAP 只会允许它被兑换一次,因此保护它。

这是一种可行的方法吗,还是有更好的方法?

我不会冒险...

你或许可以偷偷溜过去,但我不会冒险。即使您的应用程序获得了一次批准,您的第一次更新也可能会因为同样的原因而被拒绝,或者您的第二次更新,等等。他们肯定会知道您的应用程序具有应用程序内购买功能,并且它可能会弹出红旗,因为您没有'有恢复按钮等

A​​pple 在 "discouraged" 和 "disallowed," 之间有一条非常非常 非常 的细线,并且它总是更好(并且让您不那么头疼)尽可能避免规避规则,即使您在技术上没有违反任何规则。

...但是还有很多更好、更简单的方法。

也就是说,我会考虑使用 DEBUG 宏或类似的东西。您可以隔离仅在您处理应用程序的 DEBUG 版本而非 RELEASE 版本时才有效的部分代码,反之亦然。

这样做,你可以做一些像这样简单的事情:

code code code...

#ifdef RELEASE
    ad code here...
#endif

code code code...

这样,只有当用户 运行 是该应用的发布版本时,您的广告才会展示。您的测试人员不会看到广告,您的实际用户会看到,您无需为此做任何其他事情。

问题是您的 Beta 测试人员没有测试您放在商店中的应用程序。不会发现任何广告问题。你真的应该只对你打算销售的东西进行 beta 测试。

我不是 Apple(因此,我预测他们会做或不会做的任何事情都可能是错误的)但是不,你无法做到这一点。

为什么?

  • 为了执行您的建议,您需要在提交时将一个或多个 live IAP SKU 附加到应用程序

  • 为了让您的应用通过审核,Apple 将审核 SKU 以及应用

  • 为了通过审核,Apple 验证您的 IAP 功能(包括恢复购买),如果他们无法识别这些功能(购买和恢复)发生

  • 为了执行您的建议(甚至允许您超越列出的障碍),您需要一个应用内购买促销代码(这似乎还不常见可用),而不是所有开发人员都可以使用的数量有限的应用程序级促销代码。

    总而言之,考虑到限制,这不是 iOS 实现您列出的目标的合适工具。