web-dev-qa-db-de.com

com.facebook.sdk Fehler 2 auf iOS

Ich habe eine Phonegap-App, die sowohl auf iOS als auch auf Android läuft. Die App verfügt über eine Facebook-Anmeldefunktion, die bis vor wenigen Tagen funktioniert hat. Einige unserer Betatester haben den Fehler "Der Vorgang konnte nicht abgeschlossen werden. Com.facebook.sdk error 2" gemeldet. Die Geräte dieser Tester variieren: iPhone 5, iPhone 4s, iPod Touch, iOS 5.1.1 und iOS 6.0.

Wir verwenden das neueste Facebook SDK und ein Phonegap Facebook Login Plugin ( https://github.com/davejohnson/phonegap-plugin-facebook-connect/ ).

Ich habe einige Nachforschungen angestellt und die folgenden Gründe gefunden, warum dieser Fehler auftreten könnte:

  • BundleIdentifier und BundleURLName in meiner info.plist-Datei stimmen nicht mit der Bundle-ID unter der nativen iOS-App in den Einstellungen meiner Facebook-App überein.
  • Die App befindet sich noch im Sandbox-Modus
  • Die App ist in den Facebook-Einstellungen deaktiviert (Geräteeinstellungen -> Facebook -> Diesen Apps die Verwendung Ihres Kontos erlauben).
  • in iOS 6.0 kann nicht gleichzeitig nach Lese- und Schreibberechtigungen gefragt werden (ich bin mir nicht sicher, ob ich über diese Berechtigung verfüge).

Folgendes ist der Fall:

  • BundleIdentifier und BundleURLName stimmen überein.
  • Die App befindet sich nicht im Sandbox-Modus.
  • Die App wird nicht in "Diesen Apps die Verwendung Ihres Kontos erlauben" aller Benutzer angezeigt.
  • Die Entwickler des Phonegap-Plugins sollen den iOS 6.0-Berechtigungsfehler behoben haben ( https://github.com/davejohnson/phonegap-plugin-facebook-connect/pull/216 )

Es ist ein sehr inkonsistenter Fehler (in meinem Fall). Ich kann den Fehler nur dann selbst reproduzieren, wenn ich die App unter "Zulassen, dass diese Apps Ihr Konto verwenden" ausschalte (in meinem Fall ist die App dort aufgeführt). Ich kann den Fehler jedoch problemlos beheben, indem ich die App erneut zulasse. Im Moment haben die meisten Tester diesen Fehler nicht (mehr), aber der Fehler bleibt auf einem iPod (wo die App auch nicht unter "Diesen Apps erlauben, Ihr Konto zu verwenden" aufgeführt ist).

Hat jemand eine Idee, warum ich diesen Fehler habe?

32
saltandpepper

Es stellt sich heraus: Ein com.facebook.sdk-Fehler 2 kann zu einer Reihe von Ergebnissen führen. Ich suche nach einer Art Facebook SDK-Fehlerübersetzungstabelle, kann aber keine finden. In meinem Fall: Der com.facebook.sdk-Fehler 2 ist aufgetreten, weil die Verbindung abgelaufen ist. Benutzer, die diesen Fehler erhalten haben, hatten eine schlechte Netzwerk-/WiFi-Verbindung.

Wir haben ein Fehlerprotokollierungssystem implementiert, das die Fehlerdetails jedes Mal protokolliert, wenn beim Anmelden bei Facebook ein Fehler auftritt. In diesen Protokollen konnte ein com.facebook.sdk-Fehler 2 festgestellt werden, der häufig auftritt, aber jedes Mal behoben wird, wenn der Benutzer versucht, sich nach einigen Sekunden erneut anzumelden.

Es mag an meiner Unfähigkeit liegen, die richtige Dokumentation zu finden, aber ich war und bin ziemlich frustriert über die Unbestimmtheit dieser SDK-Fehler. Es gibt eine Menge Dokumentation zu Fragen nach Berechtigungen (was zu dem com.facebook.sdk-Fehler 2 führen kann), aber anscheinend kann dieser Fehler durch mehr Dinge verursacht werden. Es wäre schön, dies auch irgendwo dokumentiert zu sehen.

17
saltandpepper

Dies geschah für eine App, die ich benutzte. Ich konnte es umgehen, indem ich zu meinen iPhone-Einstellungen ging, Facebook auswählte, auf meinen Namen tippte und auf "Konto löschen" klickte.

Danach konnte ich mich ohne Probleme mit der App anmelden.

Ich ging zurück zu den Einstellungen Facebook und reichte meine Anmeldeinformationen.

Die App funktioniert immer noch gut.

6
seans23

Ich hatte diesen Fehler, als ich vergaß, die native iOS-App (auf der Facebook-Entwicklerseite) zu überprüfen und meine Bundle-ID einzugeben, die der Bundle-ID in Ihrem Xcode-Projekt entspricht. (einschließlich Ihres Projektnamens am Ende.) Ich hatte auch die Einstellung auf der Facebook Developers Page, die den SandBox-Modus aktivierte. Ich habe auch den Sandbox-Modus deaktiviert, um diese Funktion nutzen zu können.

5
coolcool1994

Ich habe den Grund für diesen Fehler lange herausgefunden, da ich mit dem alten iOS 5.0 für eine größere Geräteabdeckung arbeite. Ich habe gerade Fehler 400 über Facebook Request Debug erhalten. Schließlich fand ich heraus, dass der Grund unbekannt war FBSessionDefaultAudience für FBSession (wurde mit 6.0+ getestet und die native Facebook-API gab mir einen Fehlergrund). Und als ich benutzt habe

+ (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions
                                defaultAudience:(FBSessionDefaultAudience)defaultAudience
                                   allowLoginUI:(BOOL)allowLoginUI
                              completionHandler:(FBSessionStateHandler)handler;

dieser Fehler verschwand schließlich.

4
kokoko

VERSUCHEN SIE ZUERST:

Go to Settings app -> Facebook -> Your App -> Switch it off and back on again.

Dies funktionierte für mich und erforderte nicht, dass ich den fb-Account löschte und mich wieder anmeldete, wie es @ seans23 vorschlägt. Wenn es nicht geklappt hätte, hätte ich es als nächstes versucht, aber dies hat anscheinend dazu beigetragen, den Zustand zurückzusetzen.

1
Kyle Clegg

Für mich war der Grund, dass ich meine App auf dem Simulator getestet habe. Ich wollte ein Foto teilen und der Dialog kam einfach nicht, also steckte ich mein iPhone an und alles lief danach reibungslos!

1
kalafun

Dieser Ansatz hat bei mir funktioniert. (iOS 8)

Der Kontext:

  • FB "Anmelden" -Button hat weder die FB-App noch die FB in Safari geöffnet
  • Geknalltes FB SDK err. 2.
  • "Meine App" wurde in den FB-Einstellungen nicht angezeigt, um für die Verwendung aktiviert zu werden.

Die Lösung:

  • Safari Web Cache löschen (kann optional sein)
  • Facebook App entfernen
  • Entfernen Sie den Facebook Messenger
  • Installieren Sie Ihre App und melden Sie sich an

Die Idee ist, beide die Facebook-App und den Messenger zu entfernen.

1
Teodor Ciuraru

wir hatten das gleiche Problem. Wie sich herausstellt, liegt die Ursache auf der FB-Seite tatsächlich im Timeout. Dies gilt insbesondere, wenn dieses Timeout auftritt, während die Seite "FB-Anmeldung" noch aktiv ist und der Benutzer auf "Abbrechen" klickt. In diesem Fall wird Fehler 2 immer neu abgestimmt. Wenn Sie diese Situation wiederholen und testen möchten, klicken Sie einfach auf die Schaltfläche "Abbrechen", während Sie eine Verbindung zum FB herstellen.

0
Milos Djikic

In meinem Fall habe ich die App mit meinem Unternehmenskonto erstellt und vergessen, mein persönliches Profil mit einer Entwicklerrolle hinzuzufügen. Nachdem ich herausgefunden hatte, dass alles glatt lief.

Prost.

0
Felipe