web-dev-qa-db-fra.com

swift 2 analyse facebookSDK ios9

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?

37
kalafun

Je suggère de suivre les instructions de Facebook pour préparer une application pour iOS 9: https://developers.facebook.com/docs/ios/ios9

  1. Téléchargez le dernier SDK Facebook pour iOS

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}}
  1. Liste blanche des applications Facebook

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).

28
mogile_oli

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>
31
Mark A. Durham

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>
5
Khaled Zayed

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
0
Nikunj Patel