苹果拒绝应用程序 10.6,因为 Facebook 打开 Safari 登录

Posted

技术标签:

【中文标题】苹果拒绝应用程序 10.6,因为 Facebook 打开 Safari 登录【英文标题】:Apple rejected app 10.6 because Facebook opens Safari to login 【发布时间】:2015-01-13 08:46:07 【问题描述】:

我发送了另一个版本的应用程序,允许用户通过 Facebook 登录。当然,我使用的是官方的 Facebook ios SDK。

但苹果两次拒绝了我的应用,原因如下:

应用程序在移动版 Safari 中打开一个网页进行登录,然后将用户返回到应用程序。用户应该能够在不先打开 Safari 的情况下登录。

我试图获取更多信息,审稿人的回答是:

感谢您的回复。我们审查了您的应用程序版本 3.2.1,当用户点击 Facebook 登录时,用户会被带到移动版 Safari,然后返回应用程序。

它提供了糟糕的用户体验并且不符合指南。

感谢您的回复。允许用户在不重定向到移动 Safari 的情况下登录应用程序是合适的。

为什么只有我的应用程序出现此错误,而数十个应用程序以这种方式使用 Facebook iOS SDK 并且没有被拒绝?

Facebook iOS SDK 有没有办法在应用内打开登录页面?

【问题讨论】:

您是使用 Objective-c 还是 swift 编写并使用标准 Facebook SDK? 您可以使用FBLoginView 让用户登录并避免将他踢入Mobile Safari Why only my app got this error, when dozens of apps using Facebook iOS SDK this way and don't get rejects? 他们肯定会被拒绝。他们只是在他们的开发人员上次更新他们的应用程序时没有这样做。指南可能会发生变化。 使用 SDK 登录的情况如何?你能提供一些代码吗? 【参考方案1】:

Facebook SDK 4.0+

FBSDKLoginManager *login = [FBSDKLoginManager new];
if (![UIApplication.sharedApplication canOpenURL:[NSURL URLWithString:@"fb://"]])

  login.loginBehavior = FBSDKLoginBehaviorWeb;

它会阻止通过 Safari 打开。

【讨论】:

对于 Facebook SDK 3.21+ ?有吗? 它对我不起作用。它还需要什么其他东西才能工作吗? @Zheref 是否在方法application openURL:sourceApplication:annotation 中添加[FBSDKApplicationDelegate.sharedInstance application:application openURL:url sourceApplication:sourceApplication annotation:annotation] 是的@VictorM。对不起。我忘记了!语句前的运算符。它对我来说非常有效。现在想知道如何对 Google 做同样的事情。 我收到错误消息 - “您尚未登录。请登录并重试......”。我该如何克服这个问题?【参考方案2】:

Google+ SDK 也会出现同样的问题,应用可能会因为同样的原因被拒绝:

原因

10.6:Apple 和我们的客户高度重视简单、精致、富有创意、经过深思熟虑的界面。他们需要做更多的工作,但 值得。苹果设定了很高的标准。如果您的用户界面很复杂或 不太好,可能会被拒绝 ----- 10.6 -----

我们发现您应用的用户界面存在以下问题:

该应用在移动版 Safari 中打开一个网页以创建帐户或 登录 Google+ 帐户,然后将用户返回到应用程序。这 用户应该能够在不打开的情况下创建帐户或登录 首先是 Safari。

因此,最好的解决方案是通过嵌入式 WebView 移动服务器端 oAuth 2.0,其中 SDK 不允许您自动处理此问题(如 Facebook SDK),至少在这些 SDK 没有进行更新处理之前Embedded WebView 用例。

【讨论】:

【参考方案3】:

现在 Apple 制定了更严格的规则。

您可以在 Facebook 官方文档 here 中找到问题的答案。

章节“嵌入式 WebView 登录对话框”

【讨论】:

【参考方案4】:

iOS 版 Facebook SDK 提供各种登录体验,您的应用可以使用这些登录体验对某人进行身份验证。此link 包含您需要了解的所有信息,以便在您的 iOS 应用程序中实现 Facebook 登录。或查看 ray wenderlich 教程 iOS 版 Facebook 教程:如何在您的 iPhone 应用程序中使用 Facebook 的新 Graph API

【讨论】:

以上是关于苹果拒绝应用程序 10.6,因为 Facebook 打开 Safari 登录的主要内容,如果未能解决你的问题,请参考以下文章

苹果在 Facebook 登录时拒绝应用程序

应用被拒绝导致最小功能

代号一。使用 Webview 组件登录 Facebook

Apple在应用程序中拒绝了facebook登录应用程序

应用商店拒绝了有关添加苹果登录和应用内购买的应用

Apple 拒绝了在应用程序中使用 facebook 登录的应用程序