J'essaie de connecter un utilisateur via Facebook. Dans la version précédente de Swift 1.2, tout fonctionnait parfaitement, mais après la migration, je n'arrive pas à me connecter via mon compte FB.
-canOpenURL: échec de l'URL: "fbauth: // authorize /? client_id = ... error:" Cette application n'est pas autorisée à interroger le schéma fbauth "
Pouvez-vous s'il vous plaît m'aider avec ça?
Je suggère de suivre les instructions de Facebook pour préparer une application pour iOS 9: https://developers.facebook.com/docs/ios/ios9
Téléchargez la version appropriée du SDK Facebook pour votre application.
v4.x - Recommandé . v3.24.0 - Uniquement si vous n’avez pas encore migré vers la version 4.x du SDK . 2. Liste blanche des serveurs Facebook pour les requêtes réseau
Si vous compilez votre application avec iOS SDK 9.0, vous serez affecté par App Transport Security. Actuellement, vous devez ajouter à la liste blanche les domaines Facebook de votre application en ajoutant les éléments suivants à la liste de sélection de votre application:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
ou vous rencontrerez des erreurs comme:
NSUnderlyingError=0x7f88f9436eb0 {Error Domain=kCFErrorDomainCFNetwork
Code=-1200 "An SSL error has occurred and a secure connection to
the server cannot be made." UserInfo={NSErrorFailingURLStringKey=
https://graph.facebook.com/v2.4, NSLocalizedRecoverySuggestion=
Would you like to connect to the server anyway?,
_kCFNetworkCFStreamSSLErrorOriginalValue=-9802,
kCFStreamPropertySSLPeerCertificates=<CFArray 0x7f88f9536e00
[0x10719f7c0]>{type = immutable, count = 2, values = (
0 : <cert(0x7f88f963f840) s: *.facebook.com (http://facebook.com/)
i: DigiCert High Assurance CA-3>
1 : <cert(0x7f88f96444c0) s: DigiCert High Assurance CA-3 i:
DigiCert High Assurance EV Root CA> )},
_kCFStreamPropertySSLClientCertificateState=0,
kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x7f88f9644d10>,
NSLocalizedDescription=An SSL error has occurred and a secure connection
to the server cannot be made.,_kCFStreamErrorDomainKey=3,
NSErrorFailingURLKey=https://graph.facebook.com/v2.4,
_kCFStreamErrorCodeKey=-9802}}
Si vous utilisez l'une des boîtes de dialogue Facebook (par exemple, Connexion, Partage, Invitations d'applications, etc.) pouvant basculer d'une application à une autre, vous devez mettre à jour le répertoire de votre application pour gérer les modifications apportées à canOpenURL décrites dans https. : //developer.Apple.com/videos/wwdc/2015/? id = 703
Si vous recompilez avec iOS SDK 9.0, ajoutez les éléments suivants au répertoire de votre application si vous utilisez une version du SDK version 4.5 ou antérieure:
<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>
</array>
Si vous utilisez FBSDKMessengerShareKit à partir de versions antérieures à la version v4.6, ajoutez également
<string>fb-messenger-platform-20150128</string>
<string>fb-messenger-platform-20150218</string>
<string>fb-messenger-platform-20150305</string>
Si vous utilisez la v4.6.0 du SDK, il vous suffit d'ajouter:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Cela permettra à l'intégration de FacebookSDK d'identifier correctement les applications Facebook installées pour effectuer un changement d'application. Si vous ne recompilez pas avec iOS SDK 9.0, votre application est limitée à 50 modèles distincts (les appels à canOpenURL après renvoient NON).
Dans la vidéo "Confidentialité et votre application" de la WWDC 2015, ajoutez ce qui suit à votre fichier info.plist:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbauth</string>
</array>
Suivez ce lien pour voir les mises à jour recommandées de Facebook pour iOS 9 https://developers.facebook.com/docs/ios/ios9
Afin de corriger cette erreur spécifique
-canOpenURL: failed for URL: "fbauth://authorize/?client_id=... error: "This app is not allowed to query for scheme fbauth"
Pour le Kit de développement logiciel Facebook version 4.6 ou ultérieure, accédez à votre fichier info.plist et ajoutez les éléments suivants:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Pour la version 4.5 ou antérieure:
<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>
</array>
1] Authentification dans Developer.facebook et génération de l'identifiant Facebook
2] Définir le bitcode: Pas de 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écharger 4 Sdk Framework comme
=>Bolts.framework
=>FBSDKCoreKit.framework
=>FBSDKLoginKit.framework
=>FBSDKShareKit.framework