我有一个用swift编写的iOS应用程序,使用Facebook登录(FBSDK 4.11.0)。该应用程序正在生产中,FB-login完美运行。
然而,在处理新更新时,我意识到我无法再使用FB登录或注册。在弹出webview中授权应用程序后,登录过程停止。它加载一个空白页面并静止不动。
下面的代码与目前在应用商店中的版本上运行完全相同的代码完全相同。我认为这可能与应用程序目前处于开发阶段的事实有关,但在创建测试版并通过testflight下载后,我仍然遇到同样的问题。
这是我的代码。
func fbLoginInitiate() {
if hasSeenPermissionPopup(LoginType.Facebook){
Globals.mixpanel.track("Initiated FB login")
FBSDKLoginManager().logInWithReadPermissions(["public_profile", "email", "user_birthday"], fromViewController: self, handler: {(result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in
if (error != nil) {
// Process error
self.removeFbData()
} else if result.isCancelled {
// User Cancellation
self.removeFbData()
} else {
//Success
if result.grantedPermissions.contains("email") && result.grantedPermissions.contains("public_profile") && result.grantedPermissions.contains("user_birthday") {
//Do work
self.fetchFacebookProfile()
} else {
Globals.mixpanel.track("Facebook login failed")
SweetAlert().showAlert("Ooops!", subTitle: "Noe gikk galt. Ta kontakt med Mojob dersom feilen vedvarer", style: AlertStyle.Warning)
}
}
})
}
}
回调中的错误为nil,结果仅显示我是否取消请求。我没有对info.plist或任何其他与应用程序中的FB有关的设置进行任何更改。
如果有人经历过类似的事情,我真的很感激您如何解决问题。
登录的第一部分按预期工作
第二部分冻结
答案 0 :(得分:0)
你的AppDelegate是否正确配置了facebook SDK?如果没有,您应该添加以下功能:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
请参阅此问题以获取更多信息:
https://github.com/facebook/react-native-fbsdk/issues/72
在这个问题中,他们参考了我找到正确设置的网站:
https://developers.facebook.com/docs/ios/getting-started#delegate