web-dev-qa-db-fra.com

-canOpenURL: a échoué pour l'URL: "fbauth2: /" (erreur OSStatus -10814.) "

j'ajoute Facebook et Google Signup dans mon application, mais j'ai ce problème 

L'opération n'a pas pu être terminée. -10814

dans le login Facebook et je ne sais pas comment le résoudre, ceci est mon code de délégué d'application pour la 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: [:])
                }

            }

qu'est-ce que je peux faire?

7
bero

maintenant, j'ai utilisé le dernier SDK v4.26.0 téléchargé depuis ici et j'ai suivi le lien pour connaître les étapes à suivre pour installer FB. et mon code est 

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);
    }
}];

ici, j'ai utilisé le comportement de connexion en tant que FBSDKLoginBehaviorSystemAccount et je reçois l'erreur en tant que 

(- error: "L’opération n’a pas pu aboutir. -10814)

donc dans mon simulateur ou appareil ne contient pas de configuration de comptes dans les paramètres système de facebook. alors il vient sur le bloc suivant

if (error) {
    NSLog(@"Process error");
}

si j'imprime l'erreur, 

Pas de compte Facebook . Il n'y a pas de compte Facebook configuré. Vous pouvez ajouter ou créer un compte Facebook dans les paramètres.

donc j'ai changé le loginBehavior de FBSDKLoginBehaviorSystemAccount à FBSDKLoginBehaviorWeb, j'ai tous les OP sans erreur 

6
Anbu.Karthik

Travaillé après avoir ajouté openUrl avec les options suivantes:

Documentation Facebook

Notez que application:openURL:options: est uniquement disponible dans iOS 9 et supérieur. Si vous construisez avec une version plus ancienne du iOS SDK, vous pouvez utiliser:

- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url 
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

  BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
    openURL:url
    sourceApplication:sourceApplication
    annotation:annotation
  ];
  // Add any custom logic here.
  return handled;
} 
1
Vishnu_a93

Dans ce thread , vous pouvez trouver un problème et une solution temporaire à ce type d'erreur.

0
Nik Kov

La propriété LSApplicationQueriesSchemes définie dans info.plist a résolu le problème pour moi.
Vérifiez la capture d'écran ci-jointe:

 info.plist

0
mahavir jadav