苹果拒绝了应用10.6,因为Facebook打开Safarilogin

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

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

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

我试图得到更多的信息,审稿人的答案是:

感谢您的答复。 我们检查了您的应用程序版本3.2.1,当用户点击Facebooklogin时,用户被带到移动Safari,然后回到应用程序。

它提供较差的用户体验,不符合本指南。

感谢您的答复。 允许用户在不redirect到移动Safari的情况下login应用程序将是适当的。

为什么只有我的应用程序得到这个错误,当数十个应用程序使用Facebook iOS SDK这种方式,并没有被拒绝?

Facebook的iOS SDK中有没有办法打开应用程序内的login页面?

使用Google+ SDK也会出现同样的问题,因为相同的原因,该应用可能会遭到拒绝:

原因

10.6 :苹果和我们的客户通过界面高度重视简单,精致,创造性和思想。 他们需要更多的工作,但是值得。 苹果设置了一个高的标准。 如果你的用户界面很复杂或者不太好,可能会被拒绝—– 10.6 —–

我们发现以下问题与您的应用程序的用户界面:

该应用在移动版Safari中打开一个网页,用于创build帐户或loginGoogle+帐户,然后将用户返回到该应用。 用户应该能够创build一个帐户或login,而无需先打开Safari。

所以最好的解决scheme是将服务器端oAuth 2.0移动到Embedded WebView中,SDK不允许你自动处理(如Facebook SDK),至less在这些SDK没有更新以处理Embedded WebView用例。

Facebook SDK 4.0+

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

它将阻止通过Safari打开。

现在苹果公司的规定越来越严格。

你可以在这里的官方Facebook文档中find你的问题的答案。

embedded式WebViewlogin对话框

适用于iOS的Facebook SDK提供了各种login体验,以便您的应用可以用来validation某个人。 这个链接包括你需要知道的所有信息,以便在您的iOS应用程序中实现Facebooklogin。或者检查ray wenderlich教程Facebook教程的iOS:如何使用Facebook的新的graphicsAPI从您的iPhone应用程序