Mon application ios fonctionnait bien jusqu'à ce que j'exécute "pod install" et mette à jour tous mes pods. Je reçois maintenant une erreur en essayant de construire dans Xcode.
FBSDKLoginKit/FBSDKLoginManagerLoginResult.m:43:25: No known class method for selector 'dictionary:setObject:forKey:'
Voici les versions de pod FB utilisées:
Installing FBSDKCoreKit (5.0.0)
Installing FBSDKLoginKit (4.44.1)
Ceux-ci ne sont pas spécifiés dans mon podfile. Je pense qu'ils sont installés dans le cadre de FirebaseAuth qui est dans mon podfile.
Comment puis-je résoudre ça?
Ajouter pod 'FBSDKCoreKit', '~> 4.44'
au Podfile.
Il y a un bogue dans les versions 4.x de FBSDKLoginKit
. Son podspec permet des mises à jour de versions majeures de sa dépendance FBSDKCoreKit
, mais le code n'est pas conforme.
Il n'y a pas de version FBSDKCoreKit spécifiée dans version 4.44.1 comme il y en a version 5.0. .
Le changement de fichier pod proposé est une solution de contournement pour le problème podspec.
La version actuelle de FirebaseUI nécessite la version 4.x de FBSDKLoginKit.
Dans mon cas, je devais également corriger la version de Firebase/Core
, comme suit.
pod 'FBSDKCoreKit', '~> 4.35'
pod 'FBSDKLoginKit', '~> 4.35'
pod 'Firebase/Core', '~> 5.20'
Informations supplémentaires
Le cas ci-dessus est que vous avez FirebaseUI/Twitter
pour la connexion à Twitter, qui utilise TwitterKit en interne. Mais TwitterKit a fini de prendre en charge. Donc, si vous avez déjà utilisé FirebaseUI/Twitter, les éléments suivants doivent être utilisés
pod 'FirebaseUI/OAuth'
au lieu de ci-dessous.
pod 'FirebaseUI/Twitter'
Au final, nous pouvons utiliser les derniers et stables FBSDKCoreKit, FBSDKLoginKit et Firebase/Core.
la réponse ci-dessus marquée comme correcte n'a pas fonctionné pour moi. c'est ainsi que j'ai corrigé cette erreur. J'ai d'abord téléchargé le SDK iOS depuis Facebook: https://developers.facebook.com/docs/facebook-login/ios?sdk=fbsdk
puis j'ai ouvert le sdk téléchargé et copié FBSDKCorekit.framework, FBSDKLoginKit.framework et Bolts.framework dans le dossier "Frameworks" de mon projet Xcode.
(Je n'utilise pas Facebook pour me connecter pour le moment, mais j'obtenais toujours la même erreur que vous)
Enfin, j'ai changé mon pod pour:
pod 'Firebase/Core'
pod 'FirebaseUI/Auth'
pod 'FirebaseUI/Phone'
pod 'FirebaseUI/Google'
pod 'FirebaseUI/Email'
mettre à jour le pod, nettoyer le projet et reconstruire
quelques erreurs apparaissent pour le code obsolète dans le fb sdk. cliquez sur "réparer" dans l'erreur et le projet s'exécute comme prévu.
J'ai un problème similaire. C'est après l'installation de FBSDKCoreKit 5.0.0 (au lieu de 4.44.1) dans le cadre de la base de code Firebase.
Il semble qu'il puisse y avoir du code que Firebase utilise:
Cela semble être problématique et donne l'erreur: Aucune méthode de classe connue pour le sélecteur 'dictionary: setObject: forKey:'
Bien que je ne sache pas comment le résoudre, ce qui précède peut fournir des informations aux autres.
Tout d'abord, vous devez vérifier la version appropriée du pod que vous installez. Parce qu'il semble que vous installez une version antérieure de Facebook Pod
. Veuillez regarder la capture d'écran que j'ai jointe. Ça marche bien pour moi.
Bien que vous puissiez suivre ces étapes pour surmonter cette erreur.
Terminal
, accédez au répertoire du chemin du projet, exécutez la commande pod install
(Cela supprimera tous les pods Facebook).Terminal
et exécutez la commande pod install
(Il installera tous les derniers pods Facebook).