J'ai mis à jour Xcode 7 et le dernier SDK iOS. J'ai ajouté les entrées appropriées dans le plist de mon application:
La connexion Facebook de mon application fonctionne correctement sur l'appareil. Cependant, sur le simulateur iOS 9, je reçois:
-canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"
Et la connexion ne fonctionne pas. J'ai vu problème de connexion facebook - canOpenURL: échec pour l'URL: "fbauth2: ///" - erreur: "(null)" mais j'ai le framework FBSDKCoreKit. J'ai également vu Facebook SDK 4.5 IOS 9 mais sa réponse ne résout pas mon problème.
Pourquoi est-ce que j'obtiens cette erreur sur le simulateur et non sur l'appareil même si j'ai fait la liste de contrôle à https://developers.facebook.com/docs/ios/ios9 ?
Il s'agit d'un avertissement Xcode indiquant que l'appel canOpenURL: a renvoyé false. Tant que vous avez configuré l'entrée
LSApplicationQueriesSchemes
dans votre plist comme décrit ci-dessus, vous pouvez ignorer cet avertissement.
Ce n'est pas un problème. Le SDK FB essaie d'ouvrir l'application facebook native qui a le type fbauth2: // url. Dans Simulator, ce n'est pas disponible, il suffit donc de mettre un journal qu'il ne pouvait pas ouvrir l'application Facebook native. Vous pouvez configurer Facebook acct dans Simulator, puis indiquer au bouton FB Login d'utiliser le compte Facebook natif au lieu d'ouvrir la vue Web. Mais Facebook soutient que des millions de personnes utilisent Facebook dans le navigateur et donc dans iOS 9, ils ont utilisé le nouveau SFSafariViewController comme comportement par défaut pour les connexions Facebook, même sur les appareils. Vous pouvez essayer d'utiliser le Facebook natif et voir si cela fonctionne.
Consultez ce lien pour la discussion.
J'ai rétrogradé mon SDK Facebook de la version 4.7 à 4.5.1 et j'ai bien fonctionné à la fois sur le simulateur et sur l'iphone (sans l'application Facebook installée).
Après avoir mis à jour votre .plist
fichier avec le tableau LSApplicationQueriesSchemes
, ce que vous semblez avoir déjà fait:
Ensuite , vérifiez que votre SDK Facebook est la version 4.6.0 . Suivez les directions Facebook sinon.
Enfin , qui est probablement à l'origine du problème, est de Réinitialiser votre Contenu et paramètres du simulateur
Le simulateur d'Apple, même l'IDE, aura des bogues et la fermeture et la réouverture, ainsi que la réinitialisation du simulateur, sont toujours quelque chose à considérer au début de votre recherche d'une solution.
J'espère que cela t'aides!
Selon Facebook:
le SDK iOS prend en charge SafariViewController qui nous permet de basculer sur l'affichage des boîtes de dialogue rendues sur le Web au lieu de faire un changement d'application. Ce SDK bêta déterminera automatiquement la meilleure expérience de changement d'application pour les personnes en fonction de leur appareil. Par exemple, par défaut l'expérience de la personne via SafariViewController au lieu de Safari pour Facebook Login ....
Lien de référence Facebook: https://developers.facebook.com/bugs/786729821439894/?search_id
Lien de référence de pile: https://stackoverflow.com/a/32593070/2905967
1] Authentification dans Developer.facebook et générer l'ID Facebook comme: => 460481580805052
2] Définir le Bitcode: Non à partir des paramètres de construction
3] Configurer le fichier Plist
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb460481580805052</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>460481580805052</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
<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-messenger-api20140430</string>
<string>fb-messenger-platform-20150128</string>
<string>fb-messenger-platform-20150218</string>
<string>fb-messenger-platform-20150305</string>
</array>
4] Téléchargez 4 Sdk Framework comme
=>Bolts.framework
=>FBSDKCoreKit.framework
=>FBSDKLoginKit.framework
=>FBSDKShareKit.framework
En suivant ces étapes, vous pourrez peut-être éviter cette erreur:
1) allez dans -> Fichier de support
2) info.plist
3) Faites un clic droit sur info.plist -> Ouvrir en tant que -> Sélectionnez le code source
* Ajouter le code ci-dessous à l'intérieur <dict>...</dict>
*
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Pour iOS 9 ou supérieur, ajoutez cette méthode dans votre fichier AppDelegate:
veuillez utiliser LSApplicationQueriesSchemes ou ajouter dans plist votre identifiant d'application.