iOS审核总结

2017-12-19  本文已影响529人  nero_i

前言

一、常见问题

1. 低级问题

2. 高级问题

二、实际经验分享

1. IAP支付需求

1.1 背景

我的APP有应用内使用权限收费功能,使用的支付方式是第三方支付。在审核过程中使用开关,关闭了购买的入口。结果被拒。

1.2 原因分析

起初使用开关控制入口是可以的,但是突然某一次提审苹果认为应用存在支付,并且需要接入IAP。其中有个比较致命的问题是,应用内出现了促销信息,信息中包含了价格。一旦苹果认准了的问题,简单的去除和沟通几乎是不可能解决的。

1.3 解决方案

经过研究,我们增加了特定的应用内购商品,并且通过了审核。以下是解决方案的要点:

2. 账户登录问题

2.1 背景

苹果允许应用存在注册登录,但是不允许应用在使用他们看似和账号无关的功能时要求登录。

实际场景如下:主页中有个商品,匿名户点击购买,然后应用弹出了登录框。这个流程及其普遍,而且这个登录的用意也很好理解。但是如果这个商品使用IAP支付,那么苹果就认为这个过程非法。他们会说:

17.2 Details
We noticed that your app requires users to register with personal information to access non account-based features, which is not allowed on the App Store. 
Specifically, your app requires users to register prior to In App Purchase. We’ve attached screenshot(s) for your reference.
Apps cannot require user registration prior to allowing access to app content and features that are not associated specifically to the user.

Oh my god~~

2.2 原因分析

苹果认为IAP本身是不需要用户登录的。因为这个是苹果提供的支付方法,和应用本身的账号无关。这个解释我们虽然看得懂,但是非常难理解。

2.3 解决方案

为此我们使用了几种方式去解决,供大家参考选用。

3. 账户无注册入口问题

3. 用户数据恢复

3.1 背景

2016年10月份,苹果突然对我们的匿名登录机制提出了异议(是异议,不是reject),大体意思是对于非消耗型的商品,用户如何跨设备恢复。原文如下:

We began the review of your app but aren't able to continue because we need additional information about your app.
At your earliest opportunity, please review the following question(s) and provide as much detailed information as you can. The more information you can provide upfront, the sooner we can complete your review.
- We were unable to sign out form the user account. Can users create and sign in with their own account within the app?
- If I purchase classes or 代币 in a device, how do I restore these items on a second device?
Once you reply to this message in Resolution Center with the requested information, we can proceed with your review.

以上回复中有2个问题。第一,用户如何退出并使用自定义账号注册登录;第二,购买的内容如何在其他设备上恢复。现实是,这2个问题我们是无法做到的。所以在这种情况下,我们向苹果婉转的解释了无法满足以上2点,并希望继续review。

结果,经过4个小时的再次review,直接被reject。理由如下:

Business - 3.1.1
Your app uses intermediary currency to purchase items that function as non-consumable products but does not include a restore mechanism. 
Users restore transactions to maintain access to content that they've already purchased. 
Next Steps
Please modify your app to include an optional user registration feature that allows users to restore their purchases to all of their iOS devices. 
We recommend indicating that account registration is necessary to restore previously purchased In-App Purchase products, and providing a way for users to register later if they wish to access this content in the future.

苹果爸爸,你玩真的了啊~~~

3.2 原因分析

这个问题完全是颠覆之前的说法。以前说使用iap为什么要和账号相关,所以我们使用了匿名登录。现在又说,用户如何在不同的设备上恢复购买内容,还希望我们提供用户注册登录。(难道换了个其他口味的审核人员……)

虽然问题复杂,但是我们还是需要静下心来分析、解决问题。这里有个细节,苹果提到了non-consumable products。我们应用内iap支付的只有浆果,而且它是consumable的。那么所谓的non-consumable的商品是什么呢?仔细想想,应该是用浆果换购的课程,这些课程是永久的,是非消耗品。

找到了这个商品,那就好解释了。之前苹果希望我们去掉用户登录这个过程,是因为iap支付本身和第三方账号是无关的。而现在商品完全是建立在账号基础上的,所以我们在这个时候启用登录注册是为了记录课程数据,和之前iap买代币不是一件事情。

似乎这个理由也能说服自己去开放注册、登录功能。当然,这里不担心苹果再来纠结为什么iap购买代币的时候需要用户登录。因为如果他真的反过来纠结这个问题,那么只有一个理由,他想玩死我们了。

3.3 解决方案

解决方案非常简单,就是打开原本隐藏的注册登录,取消匿名登录。这里有几个细节,虽然我们开放了注册登录,但是为了尽可能的减少变数,送审阶段我们屏蔽了第三方一键登录(微信、微博、QQ)。除了登录外,其他的限制还是保留,不要太坦诚。

最后,因为开放了注册、登录,所以不要忘记在itunesconnect中提供测试账号、密码。

附录:重点审核条款

上一篇 下一篇

猜你喜欢

热点阅读