-canOpenURL:URL失败:"fbauth2:/"(OSStatus错误-10814.)"

ber*_*ero 8 facebook ios

我在我的应用程序中添加了Facebook和Google注册,但我有这个问题

该操作无法完成.-10814

在Facebook登录,我不知道如何解决它,这是我的应用程序委托代码openUrl:

 func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any])
        -> Bool {

            if let fbSDKAppId = FBSDKSettings.appID(), url.scheme!.hasPrefix("fb\(fbSDKAppId)"), url.host == "authorize" {
            var shouldOpen :Bool = FBSDKApplicationDelegate.sharedInstance().application(application,  open: url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!,annotation:options[UIApplicationOpenURLOptionsKey.annotation])
            return shouldOpen
            }
            else {
                return GIDSignIn.sharedInstance().handle(url,
                                                     sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
                                                     annotation: [:])
                }

            }
Run Code Online (Sandbox Code Playgroud)

我可以做什么?

Anb*_*hik 7

现在我使用从这里下载的最新SDK v4.26.0,然后按照链接为FB安装步骤.我的代码是

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];

if ([[[UIDevice currentDevice] systemVersion] floatValue] <= 9) {
    // After iOS9 we can not use it anymore
    login.loginBehavior = FBSDKLoginBehaviorSystemAccount;
} else {
    login.loginBehavior = FBSDKLoginBehaviorWeb;
}

NSArray *permission = [[NSArray alloc] initWithObjects:@"email",@"public_profile",@"user_friends", nil];
NSLog( @"### running FB sdk version: %@", [FBSDKSettings sdkVersion] );

[login logInWithReadPermissions:permission fromViewController:(UIViewController *)self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    [self removeActivityIndicatorWithBg:activityIndicator];

    if (error) {
        NSLog(@"Process error");
    } else if (result.isCancelled) {
        NSLog(@"Cancelled");
    } else {
        NSLog(@"Logged in%@",result.grantedPermissions);
    }
}];
Run Code Online (Sandbox Code Playgroud)

在这里我使用了登录行为FBSDKLoginBehaviorSystemAccount,我得到了错误

( - 错误:"操作无法完成.-10814)

所以在我的模拟器或设备中不包含在facebook的系统设置中设置的帐户.然后它出现在下面的块中

if (error) {
    NSLog(@"Process error");
}
Run Code Online (Sandbox Code Playgroud)

如果我打印错误,

没有Facebook帐户.没有配置Facebook帐户.您可以在"设置"中添加或创建Facebook帐户.

所以我将loginBehavior FBSDKLoginBehaviorSystemAccount改为FBSDKLoginBehaviorWeb,我得到了所有OP,没有错误