2012-09-17 11 views
6

ich gerade aktualisiert meine App mit dem neuen Facebook 3.0 SDK für iOS. Zuvor verwendete ich das SDK, das FBSessionDelegate und FBRequestDelegate verwendete. In diesem SDK mussten wir diesen Code in dem applicationDidFinishLaunching platzieren:‚FBSession: Nein AppID bereitgestellt

facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self]; 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) { 
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
} 

aber jetzt mit dem neuen 3.0 SDK, mir gesagt, dass alles, was wir tun müssen, ist, den Rahmen importieren und Ressourcenbündel, dann " Add-ID genannt FacebookAppID zum Bundle * .plist“Also habe ich das getan habe, aber wenn ich einen Code mit FBSession in es nennen, ich bekomme diese Fehlermeldung:

'FBSession: No AppID provided; either pass an AppID to init, or add a string valued key with the appropriate id named FacebookAppID to the bundle *.plist' 

Was könnte ich falsch gemacht?

Antwort

3

@Kwame konfrontiert ich das gleiche Problem, Sie Session-Objekt die App-ID fehlt. Dazu können Sie in der info.plist mit dem Namen FacebookAppID einen Schlüssel hinzufügen und den entsprechenden Wert mit der App-ID festlegen, die Facebook von Ihrer ios-App erhält. oder wenn, falls Sie dies bereits getan haben, können Sie die App-ID programmatisch festlegen, indem Sie die entsprechenden Werte in dem - (id)initWithAppID:(NSString*)appID permissions:(NSArray*)permissions urlSchemeSuffix:(NSString*)urlSchemeSuffix tokenCacheStrategy:(FBSessionTokenCachingStrategy*)tokenCachingStrategy; Verfahren einstellen. Überprüfen Sie bitte auch den Wert der App-ID in info.plist. Hoffe das hilft.

+0

Danke. Es ist nur so, dass die Facebook iOS SDK-Dokumentation es so aussehen lässt, als ob Sie nur die FacebookAppID info.plist einstellen müssten. Sie machen sich nicht die Mühe, all diese verschiedenen Wege zu erzählen. – Kwame

5

Ich bin noch nicht sicher, warum dies geschieht, aber meine Abhilfe war zu prüfen, ob das FBSession Objekt eine APP_ID hat und wenn nicht, dann ist es manuell einstellen:

if (![FBSession defaultAppID]) { 
    [FBSession setDefaultAppID:FB_APP_ID]; 
} 

hoffte, das hilft jemand!

+0

ersetzt es ist in neuem Facebook SDK veraltet.Hast du eine Idee für eine neue Methode? –

13

Es ist ausreichend, den Eintrag "FacebookAppID" in der PLIST-Datei zu haben.

Allerdings hatte ich das gleiche Problem nach dem Kopieren der "FacebookAppID" Zeichenfolge von der Dokumentationswebsite in die PLIST-Datei in Xcode. Nach dem „FacebookAppID“ Eintrag aus der plist-Datei zu entfernen und es durch tatsächliches es eingeben reentering, es funktionierte!

Also beim Kopieren/Einfügen der Zeichenfolge "FacebookAppID" aus der HTML-Datei in die PLIST-Datei wurde entweder ein unsichtbares Markup kopiert oder die Zeichencodierung wurde durcheinander gebracht.

+2

Huh ... verrückt. Das hat mich eine Ewigkeit gekostet, aber diese Antwort hat das Problem gelöst. Vielen Dank! – Buzzrick

+0

Absolut verrückt, das funktioniert. Ich denke, es hat etwas damit zu tun, wie Plist-Dateien zwischengespeichert und aktualisiert werden. – Eugene

2

Ein anderer möglicher Fehler, den Sie hier machen können, besteht darin, die Schnellsuche zu verwenden, um nach "plist" zu suchen und nicht zu bemerken, dass Sie die App-ID der falschen PLIST-Datei hinzufügen. Wenn Sie ein Framework wie das Google Maps SDK eingebunden haben, verfügt es über eine eigene Plist-Datei.

5

In meinem Fall tippte ich FacebookAppId mit einem Kleinbuchstaben 'd'. Einfach ausstellen, falls jemand das gleiche Problem hatte.

6

nur bis zum Kopf. Ich hatte heute dieses Problem und schließlich bemerkte ich, einfach, dass ich einfach die Einträge in der falsch .plist-Datei abgelegt. Wenn Sie Ihre Projektdateien (nach links) filtern, geben Sie .plist ein und Sie sehen möglicherweise zwei Dateien. Einer ist der Test und der andere ist derjenige, den Sie tatsächlich einrichten müssen. Viel Glück!

+0

+1 OMG wie dick bin ich? – Damo

-1

nur zusätzlich zu bisherigen Antworten: Auch wenn Sie bemerkt, dass Sie FacebookAppID in eine falsch * .plist-Datei und Sie haben immer noch den gleichen Fehler, überprüfen wieder hinzugefügt. Wahrscheinlich haben Sie es in ein anderes falsch * .plist

+0

dies gehört in einem Kommentar auf die vorherige Antwort –

+0

@ Félix ja, aber ich meinte, dass es möglich ist, Fehler zweimal zu machen, vor allem, wenn Sie wenige Bibliotheken mit ihren eigenen Bibliotheken angeschlossen haben. Also muss man sehr aufmerksam sein, es ist ein recht gewöhnlicher und ziemlich dummer Bug. – slxl

+0

ja. Also leg es in einen Kommentar :) Kommentare existieren genau für diese Präzisionen und "du musst aufmerksam sein" Hinweise. andere Leute können dann für deinen Kommentar abstimmen, wenn sie es nützlich finden, es gibt sogar ein Abzeichen für sehr gute Kommentare :) –