Ich habe auf Xcode 7 und das neueste iOS SDK aktualisiert. Ich habe die entsprechenden Einträge in die Liste meiner App eingefügt:
Die Facebook-Anmeldung meiner App funktioniert auf dem Gerät einwandfrei. Auf dem iOS 9-Simulator erhalte ich jedoch:
-canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"
Und Login funktioniert nicht. Ich habe gesehen Facebook Login Problem - canOpenURL: fehlgeschlagen für URL: "fbauth2: ///" - Fehler: "(null)" aber ich habe FBSDKCoreKit Framework. Ich habe auch Facebook SDK 4.5 IOS 9 gesehen, aber die Antwort löst mein Problem nicht.
Warum wird dieser Fehler auf dem Simulator und nicht auf dem Gerät angezeigt, obwohl ich die Checkliste unter https://developers.facebook.com/docs/ios/ios9 durchgearbeitet habe?
Dies ist eine Xcode-Warnung, die angibt, dass der Aufruf canOpenURL: false zurückgegeben wurde. Solange Sie den Eintrag
LSApplicationQueriesSchemes
in Ihrer Liste wie oben beschrieben konfiguriert haben, Sie können diese Warnung ignorieren.
Das ist kein Problem. Das FB SDK versucht, die native Facebook-App mit dem Typ fbauth2: // url zu öffnen. In Simulator ist es nicht verfügbar, daher wird nur ein Protokoll erstellt, mit dem die native Facebook-App nicht geöffnet werden konnte. Sie können das Facebook-Konto in Simulator konfigurieren und dann den FB-Anmeldebutton anweisen, das native Facebook-Konto zu verwenden, anstatt die Webansicht zu öffnen. Facebook behauptet jedoch, dass Millionen von Menschen Facebook im Browser verwenden und daher in iOS 9 den neuen SFSafariViewController als Standardverhalten für Facebook-Anmeldungen auch auf Geräten verwendet haben. Sie können versuchen, das native Facebook zu verwenden und zu überprüfen, ob es funktioniert.
Überprüfen Sie diesen Link für die Diskussion.
Ich habe mein Facebook SDK von Version 4.7 auf 4.5.1 heruntergestuft und sowohl auf dem Simulator als auch auf dem iPhone-Gerät (ohne installierte Facebook-App) einwandfrei funktioniert.
Nachdem Sie die .plist
- Datei Ihrer App mit dem Array LSApplicationQueriesSchemes
aktualisiert haben, was Sie anscheinend bereits getan haben:
Weiter, vergewissere dich, dass dein Facebook SDK die Version 4.6.0 ist. Folgen Sie den Facebook Richtungen wenn es nicht ist.
Lastly, wo wahrscheinlich das Problem auftritt, ist Reset der Inhalt und die Einstellungen Ihres Simulators
Der Simulator von Apple, selbst die IDE, weist Fehler auf. Das Schließen und erneute Öffnen sowie das Zurücksetzen des Simulators sind immer zu Beginn Ihrer Suche nach einer Lösung zu berücksichtigen.
Hoffe das hilft!
Laut Facebook:
iOS SDK unterstützt SafariViewController, mit dem wir die Anzeige von im Web gerenderten Dialogen anstelle eines App-Wechsels umschalten können. Dieses Beta-SDK ermittelt basierend auf dem Gerät automatisch die beste App-Switch-Erfahrung für Benutzer. Beispiel: Standardmäßig wird die Benutzererfahrung über SafariViewController anstelle der Safari für Facebook-Anmeldung verwendet.
Facebook-Referenzlink: https://developers.facebook.com/bugs/786729821439894/?search_id
Stapelverweis-Link: https://stackoverflow.com/a/32593070/2905967
1] Authentifizierung in Developer.facebook und Generierung einer Facebook-ID wie: => 460481580805052
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 wie
=>Bolts.framework
=>FBSDKCoreKit.framework
=>FBSDKLoginKit.framework
=>FBSDKShareKit.framework
Wenn Sie diese Schritte ausführen, können Sie diesen Fehler möglicherweise vermeiden:
1) gehe zu -> Unterstützende Datei
2) info.plist
3) Klicken Sie mit der rechten Maustaste auf info.plist -> Öffnen als -> Quellcode auswählen
* Code unten in <dict>...</dict>
* Einfügen
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Fügen Sie für iOS 9 oder höher die folgende Methode in Ihre AppDelegate-Datei ein:
bitte verwenden Sie LSApplicationQueriesSchemes oder fügen Sie Ihre App-ID in plist ein.