如何在应用程序购买中编程自动更新以满足 Apple 准则?

Posted

技术标签:

【中文标题】如何在应用程序购买中编程自动更新以满足 Apple 准则?【英文标题】:How to program auto-renewing in app purchase to satisfy Apple guidelines? 【发布时间】:2017-06-14 20:28:56 【问题描述】:

我有 2 个自动续订的应用内订阅正在接受 Apple 审核,但我一直被拒绝。请注意,这与 IAP 产品(显然尚未审查)无关,而是与我在 UI 中呈现信息的方式有关。我永远无法让苹果明确说出如何克服拒绝。尽管我确实将请求的信息放入元数据和二进制文件中,但我提出了一次上诉,但再次被拒绝。我更改了应用程序的流程,以便在用户选择订阅和将购买请求发送到 StoreKit 之前立即显示信息。 Apple 显然认为我正在“添加” StoreKit 模式警报,但我不是。在用户请求购买或恢复之前,我在 UIAlertController 警报中显示信息。所有购买和恢复代码都经过彻底测试,但我被这个 UI 拒绝卡住了。

这是来自itunes connect的拒绝说明:

指南 3.1.2 - 业务 - 支付 - 订阅

我们继续发现您的应用及其元数据未完全满足 指定的自动续订订阅的条款和条件 在附表 2 第 3.8(b) 节中。

您应用的二进制文件不包括:

– 关于订阅的自动更新性质的信息 – 隐私政策和使用条款的链接

当您的应用在模式警报中显示订阅信息时, 此信息必须在应用程序本身中明确列出之前 用户发起应用内购买。在中显示此信息 模态警报是不够的。

您应用的元数据不包括:

– 订阅时长 – 隐私中的隐私政策 iTunes Connect 的策略 URL 字段

为方便起见,我们在下面列出了附表 2,第 3.8(b) 节。

您清楚而显着地向用户披露以下内容 有关您的自动续订订阅的信息:

– 出版物或服务的标题

– 订阅时长(时间段和/或提供的内容/服务 在每个订阅期间)

– 订阅价格和每单位价格(如果适用)

– 确认付款后将向 iTunes 帐户收取费用 购买

– 订阅会自动续订,除非在以下时间关闭自动续订 当前周期结束前至少 24 小时

– 帐户将在结束前 24 小时内收取续订费用 当前期间,并确定续订成本

– 订阅可能由用户管理,自动续订可能是 购买后转到用户的帐户设置来关闭

– 指向您的隐私政策和使用条款的链接

– 免费试用期的任何未使用部分(如果提供)将 当用户购买该出版物的订阅时被没收, 在适用的情况下

后续步骤

要解决此问题,请将您的应用或其元数据修改为 包括缺失的信息。将上述信息添加到 StoreKit 模态警报是不够的;信息还必须是 在应用程序本身的某处列出,并且必须显示 清楚而显着地。

如果以上信息在您的应用中,请回复此消息 在调解中心中提供有关查找位置的详细信息。

【问题讨论】:

【参考方案1】:

您应该尝试查看其他应用正在做什么,以了解需要什么。以下是他们要求的东西:

1- 有关订阅的自动续订性质的信息:

为此,您需要在您的应用中包含苹果合同中的这一部分。我认为他们不希望您为此使用 UIAlertView。这可能就是他们所说的“模态警报”。这是您需要包含的文本(准确或改写):

• 确认购买时将向 iTunes 帐户收取款项

• 订阅会自动续订,除非在以下时间关闭自动续订 当前周期结束前至少 24 小时'

• 帐户将在当前周期结束前 24 小时内收取续订费用,并确定续订费用

• 订阅可以由用户管理,并且可以在购买后转到用户的帐户设置来关闭自动续订

• 免费试用期的任何未使用部分(如果提供)将在用户购买该出版物的订阅时被没收(如果适用)。

这里是evernote如何做的一个例子:

2- 您还需要在应用内包含指向您的隐私政策和使用条款的链接。你可以把这些和上面的信息放在同一个地方

3- 您需要在 iTunes Connect 的应用描述中包含订阅时长。 (例如每月和每年的订阅计划......)

4- 您需要将您的隐私政策放在隐私政策 URL 字段中:

【讨论】:

UIAlertView 不是问题。我正在使用 UIAlertController,因为 UIAlertView 已被弃用。还在审核中。审阅者的反馈是,他们无法区分我的模态警报是“添加到”UIStorekit(即在 UIStoreKit 之后调用)还是在调用 UIStorekit 之前在我的应用程序流中。部分问题是我的应用描述包括我的隐私政策和使用条款页面的 URL,但不包括登录页面。显然 itunesconnect 的人在访问网站时都懒得搜索页面。 您还必须将隐私政策放在“隐私政策 URL”字段中。希望他们会批准您的应用。【参考方案2】:

我的应用今天早上获得了批准。导致批准的两个关键是:1)将所有请求的信息放入itunesconnect上描述字段的元数据中; 2) 将 UI 更改为 tableview 控制器,在静态单元格内的 UITextView 中包含所有请求的信息,并带有指向使用条款和隐私政策的活动链接。鉴于我的经验,我怀疑 Evernote 在对该线程的评论中所做的方式将来会起作用(它看起来像 UIAlertController 模态警报,这一直是我案例的症结之一 - 苹果绝对不想要模态警报,显然是因为用户必须单击某些内容才能显示所需的信息)。相比之下,对我有用的解决方案是将所有信息被动地显示在 tableview 中,并通过单击 tableview 中的一行来选择应用内购买。

【讨论】:

【参考方案3】:

Evernote 从上面的屏幕截图开始稍微更新了他们的订阅购买流程。它仍然是一个很好的例子,说明如何在没有强制“您的 iTunes 帐户...” 的东西妨碍购买过程的情况下做好这件事。

请注意,Evernote 现在在每月/每年购买选项下方提供指向其隐私政策和服务条款的链接。

【讨论】:

以上是关于如何在应用程序购买中编程自动更新以满足 Apple 准则?的主要内容,如果未能解决你的问题,请参考以下文章

如何在应用内购买功能中以编程方式更改产品价格?

iOS 8 应用程序中的自动更新订阅问题

如何从 Apple 服务器获取应用内购买列表

如何在 iTunes Connect 中提交自动更新订阅 + 应用程序以供审核?

在 Apple Watch 上以编程方式通知。 (WatchOS 3)

使用自动续订订阅的应用是不是需要 Apple 应用内购买?