好好的App,在新版本加入了QQ登陆功能后,竟然就被苹果拒绝了。重点是前先后后一共拒绝了5次!!!审核过了的那天立志要在简书写下第一篇文章好好记录,顺便锻炼一下文笔和熟悉一波Markdown。ios
该App是先要登陆而后才能使用。不像一些App(例如直播App),不用登陆就能使用。刚开始不了解苹果审核准则,这就挖下了后面的坑。 文末再作一波总结。web
Guideline 4.2.3 - Design - Minimum Functionality
We were required to install QQ before we could use your app. Apps should be able to run on launch, without requiring additional apps to be installed.Next StepsTo resolve this issue, please revise your app to ensure that users can use it upon launch. If your app requires authentication before use, please use methods that can authenticate users from within your app.
复制代码
去查看苹果开发者指南 https://developer.apple.com/app-store/review/guidelines/ api
简单翻译一下 若是该App要先登陆才能使用,那么在未安装其它任何App的状况下必须能运行该App。bash
如图,跳转到Web显示这页面。 这种状况是设备未安装QQ,直接调用QQ SDK形成的。微信
苹果反馈的图 当时没保存,显示“未安装QQ”的界面。app
处理方法: 检测设备是否安装QQ,未安装的则隐藏登陆按钮。 PS:网上大多数解决方案都是这样。ide
还有一种方法是:经过后台接口隐藏按钮,等审核经过后再修改接口显示按钮。 但查看苹果开发指南中会发现,审核期须要打开全部API。 那这种方法算不算关闭了API呢?感受苹果应该检测不出来,但愿有大神能告知。ui
看到的时候都震惊了,苹果仍是苹果,竟然用了两台设备来审核。 竟然还恰好一台设备未安装,另外一台设备安装了。 看样子检测设备是否安装QQ的方法仍是有必定概率不可行。 (脸黑,毕竟审核也是要看运气的)this
恰好该App也作了微信登陆功能,对比一下。 spa
未安装微信的设备,会跳出Web来验证。
看到这想起,QQ登陆好像也有Web验证功能。 翻了一下SDK,并未找到对应方法,因而就上网搜。
原来申请QQ登陆后,还要找客服配置一下才能跳转到Web受权。申请后会自动顶替 第一次被拒绝 那个要求安装最新QQ的界面。 因而就去找腾讯客服说明状况,获得如下回复。
这么说,不就又掉回了此次被拒的轮回吗。。。
抹着眼泪的我又从新去看了QQ第三方登陆的网址。 一打开,个人天,漏了这么重要的消息!!!
QQ竟然从2018年1月31日起不支持网页受权啦!!!
亲爱的苹果官方审核人员,您好!
对于QQ登陆,苹果官方建议咱们,若是用户没有安装QQ,则提供潜入网页让用户在网页输入QQ帐户密码来登陆。可是,腾讯QQ官方已经不支持第三方QQ登陆使用网页登录方式。咱们已经跟腾讯开放平台的客服联系过。腾讯官方也发布了公告,这个是连接: http://wiki.connect.qq.com/%E9%80%9A%E7%9F%A5
目前腾讯技术提供了一个接口,就是判断用户有没有安装QQ,若是安装了则显示QQ登陆图标,若是没有则屏蔽该图标。咱们的(**)APP已经实现这样的逻辑了。腾讯技术官方给出惟一的解决办法就是判断是否安装QQ选择性显示QQ登陆图标。下面这个是腾讯的技术公告连接http://wiki.connect.qq.com/ios%E4%BE%A7%E5%88%A4%E6%96%AD%E5%AE%89%E8%A3%85qq%E6%8E%A5%E5%8F%
麻烦审核人员理解下,目前QQ已经不容许其余APP使用网页方式登陆QQ,咱们也按照腾讯的要求,作了判断屏蔽图标处理。
但愿审核人员,能让咱们新版本的APP审核经过,谢谢!
附件,是咱们跟腾讯客服的对话截图。
复制代码
此次苹果还回复同样的缘由,我是不服的。苹果不行、腾讯那边又不行,需求方也不会放过个人。
Dear Apple official auditor, Hello!According to the latest technology Bulletin of Tencent, when QQ third party login, if the client installed QQ, it can directly modulate the QQ application authorized login. However, when QQ application is not installed, it will prompt the installation of QQ, and cannot jump to browser for QQ login.If you do not install QQ, it is impossible to land, this is due to the official restrictions of the Tencent, not our reason. If the user does not log in to QQ, it can also use the WeChat or the registered account of our application.For QQ login, apple officials suggest that if the user does not install QQ, it provides a latent web page to allow the user to enter the QQ account password in the web page. However, Tencent official does not support third party QQ login login page. We have been in contact with the customer service of the Tencent open platform. Tencent official also issued a bulletin, this is the link: http://wiki.connect.qq.com/%E9%80%9A%E7%9F%A5At present, Tencent technology provides an interface to determine whether the user has installed QQ. If installed, it displays the QQ login icon. If not, it will block the icon. Our (**) APP has already realized this logic. The only solution to the Tencent technology official is to determine whether to install a QQ selective display of the QQ login icon. The following is the Tencent technical bulletin link http://wiki.connect.qq.com/ios%E4%BE%A7%E5%88%A4%E6%96%AD%E5%AE%89%E8%A3%85qq%E6%8E%A5%E5%8F%QQ has not allowed other APP to log on to QQ with web pages. We also made a judgement of screened icon processing according to the requirements of Tencent.Hope that the auditor, can let us the new version of the APP audit pass, thank you!
复制代码
到这终于经过审核啦,笑得像个地主家的傻儿子。
好日子还没享受多久,又传来了噩耗。 修改了一些bug后提交新版本审核又被拒绝啦。
反馈的图 和第一次被拒的图同样。 猜想是设备安装了QQ,但QQ版本太低。
处理方法:
//判断是否安装qq,没有就隐藏按钮
if([QQApiInterface isQQInstalled]){
//判断当前版本的qq是否支持调用api
if([QQApiInterface isQQSupportApi])
[self setQQLogin];
}
复制代码
改完后又经过了。
最后但愿不会有第六次吧。