webentwicklung-frage-antwort-db.com.de

schnell 2 parse facebookSDK ios9

Ich versuche, einen Benutzer über Facebook anzumelden. In der vorherigen Version von Swift 1.2 funktionierte alles einwandfrei, aber nach der Migration kann ich mich anscheinend nicht über meinen FB-Account anmelden. Ich bekomme immer noch die Fehlermeldung:

-canOpenURL: Fehler bei URL: "fbauth: // authorize /? client_id = ... Fehler:" Diese App darf das Schema fbauth nicht abfragen. "

Kannst du mir bitte dabei helfen?

37
kalafun

Ich empfehle, den Anweisungen von Facebook zu folgen, um eine App für iOS 9 vorzubereiten: https://developers.facebook.com/docs/ios/ios9

  1. Laden Sie das neueste Facebook-SDK für iOS herunter

Laden Sie die entsprechende Version des Facebook SDK für Ihre App herunter.

v4.x - Recommended . v3.24.0 - Nur wenn Sie noch nicht vom SDK zu v4.x migriert wurden . 2. Whitelist Facebook-Server für Netzwerkanfragen

Wenn Sie Ihre App mit iOS SDK 9.0 kompilieren, sind Sie von App Transport Security betroffen. Derzeit müssen Sie Facebook-Domains in Ihrer App auf die Whitelist setzen, indem Sie der Liste Ihrer Anwendung Folgendes hinzufügen:

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

oder Sie werden Fehler wie:

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. Whitelist Facebook Apps

Wenn Sie eines der Facebook-Dialogfelder verwenden (z. B. Login, Teilen, App Invites usw.), über die eine App zu Facebook-Apps wechseln kann, müssen Sie die Liste der Anwendungen aktualisieren, um die in https beschriebenen Änderungen an canOpenURL zu verarbeiten : //developer.Apple.com/videos/wwdc/2015/? id = 703

Wenn Sie mit iOS SDK 9.0 neu kompilieren, fügen Sie der Anwendungsliste der Anwendung Folgendes hinzu, wenn Sie eine Version des SDK v4.5 oder älter verwenden:

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

Wenn Sie FBSDKMessengerShareKit von älteren Versionen als v4.6 verwenden, fügen Sie auch Folgendes hinzu

<string>fb-messenger-platform-20150128</string>
<string>fb-messenger-platform-20150218</string>
<string>fb-messenger-platform-20150305</string>

Wenn Sie Version 4.6.0 des SDK verwenden, müssen Sie nur Folgendes hinzufügen:

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
</array>

Dadurch kann die FacebookSDK-Integration installierte Facebook-Apps ordnungsgemäß identifizieren, um einen App-Wechsel durchzuführen. Wenn Sie nicht mit iOS SDK 9.0 neu kompilieren, ist Ihre App auf 50 verschiedene Schemata beschränkt (Aufrufe von canOpenURL geben danach NEIN zurück).

28
mogile_oli

Fügen Sie aus dem Video "Privacy and Your App" der WWDC 2015 Ihrer info.plist-Datei Folgendes hinzu:

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbauth</string>
    </array>
31
Mark A. Durham

Folgen Sie diesem Link, um die empfohlenen Updates von Facebook für iOS 9 anzuzeigen https://developers.facebook.com/docs/ios/ios9

Um diesen spezifischen Fehler zu beheben

-canOpenURL: failed for URL: "fbauth://authorize/?client_id=... error: "This app is not allowed to query for scheme fbauth"

Für Facebook SDK Version 4.6+ gehen Sie in Ihre info.plist-Datei und fügen Sie Folgendes hinzu:

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
    </array>

Für Version 4.5 oder älter:

<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] Authentifizierung in Developer.facebook und Generierung der Facebook-ID 

2] Set Bitcode: No From Build Settings

3] Plist-Datei einrichten

<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] Laden Sie 4 Sdk Framework gerne herunter

=>Bolts.framework
=>FBSDKCoreKit.framework
=>FBSDKLoginKit.framework
=>FBSDKShareKit.framework
0
Nikunj Patel