我正在使用 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/