web-dev-qa-db-fra.com

Code d'erreur de connexion FBSDK: 308 en Objective-C

Je continue à obtenir 

"Domaine d'erreur = com.facebook.sdk.login Code = 308" L'opération n'a pas pu être completé. (erreur com.facebook.sdk.login 308.) ""

en essayant de se connecter avec Facebook depuis mon appareil.

Mon code fonctionne sur le simulateur, mais pas sur un appareil réel. Quelqu'un at-il déjà rencontré ce code d'erreur? Je serai plus qu'heureux de partager le code sur demande.

57

Une solution, du moins pour moi, consiste à ne pas exécuter sur le périphérique via le débogueur Xcode. Si je lance l'application sur un appareil en dehors du débogueur, la connexion Facebook fonctionne correctement. Si je lance l'application dans la sim via le débogueur, la connexion Facebook fonctionne correctement.

Si j'exécute l'application sur l'appareil via le débogueur Xcode, l'erreur 308 com.facebook.sdk.login s'affiche systématiquement.

44
user3633673

Vous devez activer Partage du trousseau sur l'onglet Capacités .

42
Di B.

J'ai eu exactement le même problème et j'ai pu trouver la solution en modifiant l'Info.plist

J'ai ajouté tous les schémas possibles à LSApplicationQueriesSchemes

La liste complète ressemble à ceci:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fbapi20130214</string>
    <string>fbapi20130410</string>
    <string>fbapi20130702</string>
    <string>fbapi20131010</string>
    <string>fbapi20131219</string>
    <string>fbapi20140410</string>
    <string>fbapi20140116</string>
    <string>fbapi20150313</string>
    <string>fbapi20150629</string>
    <string>fbauth</string>
    <string>fbauth2</string>
    <string>fb</string>
    <string>fb-messenger-api20140430</string>
    <string>fb-messenger-platform-20150128</string>
    <string>fb-messenger-platform-20150218</string>
    <string>fb-messenger-platform-20150305</string>
    <string>fb-messenger-api</string>
    <string>fbshareextension</string>
</array>
26
Stas Zhukovskiy

Je reçois exactement la même chose FB SDK 4.6.0 Xcode 7.0 iOS9. Toutes les instructions d’installation et les instructions sur le site de développement facebook ont ​​été suivies à la lettre . Aucune des solutions ci-dessus n’a fonctionné pour moi. Je constate que le comportement est pire lorsque vous effectuez un déploiement sur le périphérique en direct et que vous vous reportez à la console Xcode lors de la procédure de connexion. C'est vraiment une chance si cela vous connecte ou non. Il semble se comporter de manière plus prévisible lorsque vous relancez votre application à froid après le déploiement. -Oui c'est bien le cas!

Lorsqu'il décide de ne pas se connecter, l'erreur suivante est générée:

Error Domain=com.facebook.sdk.login Code=308 "(null)"
14
Geoff H

Ma solution sur Xcode7.1, Swift2.0

Étape 1. Nettoyez votre dossier de construction: option + command + K

ou: Choisissez Product> Clean

 enter image description here

Étape 2. Nettoyez vos données dérivées: Choisissez Window> Projects:  enter image description here

puis choisissez Delete:  enter image description here

5
Tai Le

J'ai eu le même problème et j'ai corrigé l'actualisation des informations d'identification du système 

[FBSDKLoginManager renewSystemCredentials:^(ACAccountCredentialRenewResult result, NSError *error) {

    [[[YourAuthManager manager] facebookLoginManager] logInWithReadPermissions:@[@"email"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

        if (error) {
            // Handle error
        } else if (result.isCancelled) {
            // Handle cancellations
        } else {
            // If you ask for multiple permissions at once, you
            // should check if specific permissions missing
            if ([result.grantedPermissions containsObject:@"email"]) {
                // Do work
            }
        }
    }];
}];

Cette solution est moins radicale que la réinstallation et vous assurez que vos utilisateurs n’auront pas à le faire. Mon hypothèse est que FBSDK 4.6 présente certains conflits avec les informations d'identification d'authentification FB du système iOS 9. 

Édité: Après quelques tests, cela continuait, pas aussi souvent qu'avant, mais c'était toujours un problème, nous avons donc rétrogradé une version précédente de FB SDK. Espérons que quelqu'un trouve une meilleure solution.

4
edsancha

Nous avons fouillé dans le code des blocs fonctionnels et il semble que ce soit simplement une question de droits.

FB utilise le trousseau pour stocker un défi d'autorisation lors de la connexion. Lors du retour, il tente d'obtenir la valeur du trousseau et échoue. Voir cette SO réponse pour plus d’informations.

Les droits de sécurité peuvent changer entre les profils de provisioning et, comme nous le savons tous, garder nos profils et construire des configurations et des dispositifs/sims équivaut à faire paître les chats. Cela pourrait expliquer pourquoi les gens ont un comportement aussi incohérent.

Il est donc prudent de supposer que dans un environnement de production, tout fonctionnera correctement. Si tout ne fonctionne pas lors des tests, vous devez revérifier les droits d'accès de vos profils d'approvisionnement.

4
kball

Dans mon cas, cela a été corrigé en mettant à jour le dernier SDK FB. 4.10 pour le moment.

1
AlexeyVMP

La mise à jour vers la dernière version (4.11) du SDK FB a également résolu ce problème. N'oubliez pas de nettoyer votre projet après la mise à jour pour voir s'il fonctionne pour vous!

0
SlickDev

Je recevais la même erreur sur xcode 7.1 ios 9.1 FB SDK 4.7.1. .

Désinstaller, installer et tester sans xcode fonctionne bien pour la première fois. Cela vous permettra de reconnecter l’appareil et de l’exécuter au moins deux fois (cela semble un peu incohérent ...)

0
jonypz

Si vous utilisez FBSDK 4.38, l’analyse de challengeExpected dans FBSDKLoginManager.m pose un problème.

J'ai trouvé un correctif de rinat-enikeev pour cela:

https://github.com/facebook/facebook-sdk-Swift/issues/286

https://github.com/facebook/facebook-objc-sdk/pull/922/commits/bcf7f787e92320a6322fb3f6130fdc3815bbafb7

Il suffit de changer

NSString *challengeExpected = [self loadExpectedChallenge];

à

NSString *challengeExpected = [[self loadExpectedChallenge] stringByReplacingOccurrencesOfString:@"+" withString:@" "];

C'est résolu le problème pour moi.

0
user3674055

Pour résoudre ce problème, vous devez simplement activer le "partage de trousseau" dans les fonctionnalités.

0
Bhavesh Patel

J'ai pu me connecter à nouveau sur iOS9 avec SDK 4.6.0 en ajoutant la nouvelle clé/valeur plist

<key>FacebookDisplayName</key>
<string>{Your App Name}</string>

Code source .

J'ai également pris les mesures dans d'autres réponses ici pour implémenter une instance partagée FBSDKLoginManager ().

0
swift taylor

J'ai résolu le problème en désinstallant l'application, en le réinstallant et tout a fonctionné immédiatement.

L'erreur est probablement liée à iOS 9. Depuis iOS 9, le SDK utilise SafariViewController et semble créer des problèmes lorsque vous êtes déjà connecté.

0
Gabriel Cartier

Même problème FB SDK 4.5.1 et aucune des solutions ci-dessus ne fonctionnaient pour moi ..__ J'ai résolu ce problème en ajoutant le framework Bolts au projet par glisser-déposer (depuis le répertoire FacebookSDK)
puis ajout du framework de boulons à appDelegate

    #import <bolts/bolts.h>
0
Kong Hantrakool

Dans la méthode FBSDKDelegate, loginButtonWillLogin a mis ceci

- (BOOL) loginButtonWillLogin:(FBSDKLoginButton *)loginButton{
[FBSDKAccessToken setCurrentAccessToken:nil];
return YES;}
0
manu_inup

J'ai suivi Suraj Pathak avec Xcode 9.4.1 et Swift 4.2

  1. Ajouter à AppDelegate didFinishLunchingWithOptions

    SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
    
  2. Ajouter à la fonction de délégué AppDelegate

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        return SDKApplicationDelegate.shared.application(app, open: url, options: options)
    }
    
  3. Autoriser le trousseau dans les capacités.

0
user3736373