objective-c - FBSDKLoginManager错误代码308并且单例无法解决它

标签 objective-c swift facebook-ios-sdk

我正在使用 Facebook iOS SDK 4.5.1 。不想使用 4.6,因为它强制登录流程仅到 SafariVirwcontrollee。

如果之前调用过 FBSDKLoginManager,那么尝试登录时我总是会收到错误 308。按照其他线程的建议创建单例不起作用

总结一下错误308发生的两种情况 1. 调用登录两次。 2. 注销并重新登录。

这是单例的代码

static FBSDKLoginManager *sharedLoginManager = nil;

+(FBSDKLoginManager*)sharedLoginManager;
{
 static dispatch_once_t  oncePredecate;
dispatch_once(&oncePredecate,^{
    sharedLoginManager=[[FBSDKLoginManager alloc] init];



});

return sharedLoginManager;
}

- (id)init {
if (self = [super init]) {

}
return self;

}

登录代码

if ([FBSDKAccessToken currentAccessToken])
{
    [self processLoginInfo];
} else
{


    [FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];

    [[FacebookLoginSingleton sharedLoginManager] logOut];
    [[FacebookLoginSingleton sharedLoginManager]
     logInWithReadPermissions: @[@"public_profile",@"email",@"user_friends"]
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
         if (error) {//}
}];

注销代码

    if ([FBSDKAccessToken currentAccessToken])
     {

         [[FacebookLoginSingleton sharedLoginManager] logOut];


         [FBSDKAccessToken setCurrentAccessToken:nil];
     }

最佳答案

我仍在处理同样的错误,并且(假设您的 info.plist、AppDelegate 和 Facebook 应用程序设置正确),当不使用 Xcode 运行应用程序时,问题完全消失

是的,这似乎是一个错误,唯一的解决方案是不使用调试工具。

如果你需要调试登录流程,在 Xcode 之外可能有十几种不同的方法可以做到这一点,但我安装了 crashlytics,并让它记录崩溃足够多次,直到我解决了我的所有其他问题。登录代码。

关于objective-c - FBSDKLoginManager错误代码308并且单例无法解决它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32789894/

相关文章:

ios - 如果设备关闭,尝试在 IOS 应用程序中检索以前配对的蓝牙设备将不会响应失败

ios - 在 Swift 中编辑 TableViewCell 的内容列表

ios - Firebase 找不到 'module <Firebase>'

ios - 是否有适用于 Facebook 好友的人物选择器 View Controller ?

ios - FBSDKShareDialog shareFromViewController 方法在哪里

post - 无法在将照片上传到用户墙时标记好友 - Facebook iOS

ios - 在 Parse Cloud 或 healthkit 中存储 StepCount 的推荐方法是什么?

ios - 如何使用 Objective C 获取 Tableview 选择的单元格 UILabels 值?

ios - 进度条实现

swift - 根据变量选择类别