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

5
我发送了另一个版本的应用程序,允许用户通过Facebook登录。当然,我使用官方的Facebook iOS SDK。
但是,苹果两次拒绝了我的应用程序,理由如下:
该应用程序会在移动Safari中打开一个网页以进行登录,然后返回应用程序。用户应该能够无需首先打开Safari登录。
我试图获取更多信息,评论者的回答是:
感谢您的回复。我们审核了您的应用程序版本3.2.1,当用户点击Facebook进行登录时,用户被带到移动Safari然后又返回到应用程序。
这会给用户带来糟糕的体验,并且不符合指南。
而且
感谢您的回复。最好让用户在应用程序内登录,而不是重定向到移动Safari。
为什么只有我的应用程序会出现这个错误,当有数十个使用Facebook iOS SDK的应用程序这样做而不被拒绝?
在Facebook iOS SDK中是否有一种方法可以在应用程序内打开登录页?

你是用Objective-C还是Swift编写,并且使用标准的Facebook SDK吗? - jackslash
您可以使用 FBLoginView 来登录用户,避免将其踢出到移动 Safari。 - Lefteris
为什么只有我的应用程序会出现这种错误,而使用 Facebook iOS SDK 的数十个应用程序都不会被拒绝?他们肯定会被拒绝。只是当他们的开发人员最后更新应用程序时没有被拒绝而已。指南是随时可能更改的。 - HAS
你好,使用SDK登录怎么样了?你能提供一些代码吗? - Ming Li
4个回答

6

Facebook SDK 4.0+

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

它将防止通过Safari打开。

对于Facebook SDK 3.21+,需要什么吗? - machei
对我来说它没有起作用。还需要其他什么才能让它工作? - Sergio Daniel L. García
@Zheref,你在application openURL:sourceApplication:annotation方法中添加了[FBSDKApplicationDelegate.sharedInstance application:application openURL:url sourceApplication:sourceApplication annotation:annotation]吗? - Victor
2
是的 @VictorM。抱歉,我忘记在语句前加上!运算符了。对我来说它完美地工作了。现在想知道如何用Google做同样的事情。 - Sergio Daniel L. García
我遇到了一个错误 - "您尚未登录。请登录后重试...."。我该如何解决这个问题? - Lion

4
同样的问题也会出现在Google+ SDK中,应用程序可能因为同样的原因被拒绝:
原因: 10.6:苹果公司和我们的客户非常重视简单、精致、有创意、经过深思熟虑的界面。这需要更多的工作,但是非常值得。苹果公司设定了很高的标准。如果您的用户界面过于复杂或不够好,可能会被拒绝----- 10.6 -----
我们发现您的应用程序用户界面存在以下问题: 该应用程序在移动Safari中打开一个网页,用于创建Google+帐户或登录,然后将用户返回到应用程序。用户应该能够在不先打开Safari的情况下创建帐户或登录。
因此,最好的解决方案是通过嵌入式WebView移动服务器端的oAuth 2.0,在SDK没有自动处理此问题的情况下(例如Facebook SDK),至少直到这些SDK更新以处理嵌入式WebView用例。

2

现在,苹果公司已经加强了他们的规则。

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

章节"嵌入式WebView登录对话框"


0

iOS的Facebook SDK提供了多种登录体验,您的应用程序可以使用这些体验来验证用户身份。此链接包含了您需要知道的所有信息,以便在iOS应用程序中实现Facebook登录。或者,您也可以查看Ray Wenderlich的教程:iOS的Facebook教程:如何从iPhone应用程序中使用Facebook的新图形API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接