Ich habe meine Anwendung von der alten Facebook SDK auf die neue Facebook SDK 3.1 umgewandelt, um die iOS6 native Funktionalität sowie andere Facebook-Funktionalität zu verwenden, und ich habe ein Problem das passiert konsequent am Simulator und selten auf dem Gerät.Facebook Login Dialog funktioniert nicht auf iOS6 Simulator
Wenn ich mich bei Facebook anmelde, statt der App Hintergrund und Authentifizierung über Safari oder die Facebook App, bekomme ich ein modales Fenster über meiner App für den Login (ich glaube, das hat mit iOS6 begonnen, noch vor dem Wechsel zu Facebook SDK 3.0/3.1). In diesem Fenster kann ich den Benutzernamen und das Passwort eingeben, aber wenn ich oben rechts auf "Okay" klicke, um mich zu authentifizieren, passiert nichts. Für die Anwendung tritt kein Rückruf auf: openURL: sourceApplication: Annotation: im AppDelegate.
In meinem gemeinsamen FacebookController Code (was ich für mehrere Projekte verwenden), ich bin der Initialisierung des FBSession, wenn sie als pro Facebook-Beispielcode zu genehmigen versuchen:
FBSession *session = [[FBSession alloc] initWithAppID:nil permissions:readPermissions defaultAudience:FBSessionDefaultAudienceNone urlSchemeSuffix:self.fbUrlSchemeSuffix tokenCacheStrategy:nil];
if(session.state == FBSessionStateCreated || session.state == FBSessionStateCreatedTokenLoaded)
{
[FBSession setActiveSession:session];
// we open after the fact, in order to avoid overlapping close
// and open handler calls for blocks
[session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
...
Der Code für den Abschluss Der Handler wird nie ausgeführt, wenn ich nicht auf die Schaltfläche "Abbrechen" im Dialogfeld klicke (in diesem Fall erhalte ich einen Fehler wie erwartet).
Ich setze die FacebookAppID in meine iOS Zieleigenschaften (info.plist) und ich habe die URL Schemas auch mit fb ### [url_scheme_suffix] eingerichtet.
Der einzige Unterschied zwischen meinem Code und dem Facebook-Beispielcode ist, dass ich URL-Schema-Suffixe verwende, da ich eine kostenlose und kostenpflichtige Version unserer App habe.
Wenn sich die App mit Safari anmeldet, funktioniert sie mit dem angegebenen Code. Wenn es schnell zur Facebook App wechselt, funktioniert es auch. Außerdem funktionieren die gemeinsamen Facebook-Kontoeinstellungen von ios6. Die App schlägt nur fehl, wenn sie das in-App-Modal verwendet.
Hat jemand anderes dies gefunden?
Haben Sie die Bundle ID sowohl in Ihrer App als auch in den Facebook App-Einstellungen angegeben? –
Die Bundle-ID wird in den Facebook-App-Einstellungen festgelegt (es gibt zwei Gruppen, da wir zwei Versionen der Anwendung haben), und die Bundle-ID wird in der App plist festgelegt. –
Seien Sie einfach sicher; Du versuchst nicht wirklich 'nil' als App-ID in' -initWithAppID: Berechtigungen ... '? –