Facebook 登录 Swift 在设备上不起作用(但在 IOS 模拟器上起作用)
Facebook Login Swift don't works On Device (But do on IOS Simulator)
我在 Swift 2.
中使用 Facebook 登录配置我的应用程序身份验证
在 IOS 模拟器 (IOS 8 和 9)上一切正常:用户点击 "Login with Facebook",然后打开一个 safari 页面,然后身份验证继续,最后用户正确登录:
但是当我试穿我的 Ipod Touch 时,它总是阻塞并失败此消息(抱歉,出了点问题。我们正在处理它,我们会尽快修复它),我的用户未登录:
我尝试了很多东西:
- 更改Facebook SDK(我试过4.0 Facebook SDK)
- 在 IOS 8.4 升级我的 ipod touch,然后在 IOS 9.
- 将 Xcode 7beta 降级为 XCode 6
- 删除 Ipod Touch 上的 Facebook 应用程序并重新安装
但仍然无法正常工作..任何帮助将不胜感激!
这是我的代码:
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//For Facebook Login
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
ViewController.swift
class ViewController: UIViewController, FBSDKLoginButtonDelegate {
@IBOutlet weak var signInButtonFB: FBSDKLoginButton!
override func viewDidLoad() {
super.viewDidLoad()
//Configure Facebook
signInButtonFB.readPermissions = ["public_profile", "email", "user_friends"]
signInButtonFB.delegate = self
//Configure Facebook SignIn
if (FBSDKAccessToken.currentAccessToken() != nil)
{
print("Logged in !")
}
else
{
print("not logged")
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK: Facebook
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
print("Début login Button")
if ((error) == nil)
{
print("Login Complete")
returnUserData()
}
else {
print ("Voici l'erreur:"+error.localizedDescription)
}
}
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
print("User Logged Out")
}
看来我的应用程序 Facebook 仍处于开发模式..
我忘记设置 "Contact Name" 并允许我的应用 public 访问。
FACEBOOK 应用程序设置:
- 转到:https://developers.facebook.com/apps/
我的应用程序 -> 设置 -> 基本 -> 联系人电子邮件 = 提供电子邮件有效
我的应用程序 -> 状态和评论选项卡 -> "Do you want to make this app and all its live features available to the general public?" = 是
我遇到了同样的问题。我通过检查登录权限来修复。
还要再次检查许可文本的拼写错误。
确保您的权限在 developer.facebook.com.
上全部启用
我在 Swift 2.
中使用 Facebook 登录配置我的应用程序身份验证在 IOS 模拟器 (IOS 8 和 9)上一切正常:用户点击 "Login with Facebook",然后打开一个 safari 页面,然后身份验证继续,最后用户正确登录:
但是当我试穿我的 Ipod Touch 时,它总是阻塞并失败此消息(抱歉,出了点问题。我们正在处理它,我们会尽快修复它),我的用户未登录:
我尝试了很多东西:
- 更改Facebook SDK(我试过4.0 Facebook SDK)
- 在 IOS 8.4 升级我的 ipod touch,然后在 IOS 9.
- 将 Xcode 7beta 降级为 XCode 6
- 删除 Ipod Touch 上的 Facebook 应用程序并重新安装
但仍然无法正常工作..任何帮助将不胜感激!
这是我的代码:
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//For Facebook Login
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
ViewController.swift
class ViewController: UIViewController, FBSDKLoginButtonDelegate {
@IBOutlet weak var signInButtonFB: FBSDKLoginButton!
override func viewDidLoad() {
super.viewDidLoad()
//Configure Facebook
signInButtonFB.readPermissions = ["public_profile", "email", "user_friends"]
signInButtonFB.delegate = self
//Configure Facebook SignIn
if (FBSDKAccessToken.currentAccessToken() != nil)
{
print("Logged in !")
}
else
{
print("not logged")
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK: Facebook
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
print("Début login Button")
if ((error) == nil)
{
print("Login Complete")
returnUserData()
}
else {
print ("Voici l'erreur:"+error.localizedDescription)
}
}
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
print("User Logged Out")
}
看来我的应用程序 Facebook 仍处于开发模式.. 我忘记设置 "Contact Name" 并允许我的应用 public 访问。
FACEBOOK 应用程序设置:
- 转到:https://developers.facebook.com/apps/
我的应用程序 -> 设置 -> 基本 -> 联系人电子邮件 = 提供电子邮件有效
我的应用程序 -> 状态和评论选项卡 -> "Do you want to make this app and all its live features available to the general public?" = 是
我遇到了同样的问题。我通过检查登录权限来修复。 还要再次检查许可文本的拼写错误。 确保您的权限在 developer.facebook.com.
上全部启用