2012-09-17 8 views
6

Acabo de actualizar mi aplicación con el nuevo Facebook 3.0 SDK para iOS. Antes de esto, estaba usando el SDK que utilizaba FBSessionDelegate y FBRequestDelegate. En ese SDK, tuvimos que colocar este código en el applicationDidFinishLaunching:'FBSession: Sin AppID proporcionado

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"]; 
} 

Sin embargo ahora con el nuevo SDK 3.0, me han dicho que todo lo que tenemos que hacer es importar el marco, y paquetes de recursos, entonces " añadir Id llamado FacebookAppID al paquete * .Plist" Así que he hecho esto, pero cuando llamo a cualquier código con FBSession en ella, estoy recibiendo este error:

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

¿Qué podría estar haciendo mal?

Respuesta

3

@Kwame Tuve el mismo problema, al objeto de sesión le falta el ID de la aplicación. Para esto, puede agregar una clave en la info.plist llamada FacebookAppID y establecer el valor apropiado con la ID de la aplicación proporcionada a su aplicación ios por Facebook. o si en el caso de que ya haya hecho esto, puede configurar el id. de la aplicación programáticamente estableciendo los valores apropiados en el método - (id)initWithAppID:(NSString*)appID permissions:(NSArray*)permissions urlSchemeSuffix:(NSString*)urlSchemeSuffix tokenCacheStrategy:(FBSessionTokenCachingStrategy*)tokenCachingStrategy;. También compruebe por favor el valor de la aplicación en info.plist. Espero que esto ayude.

+0

Gracias. Es solo que los documentos del SDK de Facebook iOS hacen que parezca que todo lo que tienes que hacer es establecer el info.plist de FacebookAppID. No se molestan en contar todas estas formas diferentes de hacerlo. – Kwame

5

Todavía no estoy seguro de por qué ocurre esto, pero mi solución era comprobar si el objeto tiene una FBSession APP_ID y si no, a continuación, para configurar de forma manual:

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

Espero que esto ayude a alguien!

+0

está en desuso en el nuevo SDK de Facebook.¿tienes alguna idea para un nuevo método? –

13

Basta con tener la entrada "FacebookAppID" en el archivo plist.

Sin embargo, tuve el mismo problema después de copiar la cadena "FacebookAppID" del sitio web de documentación en el archivo plist en Xcode. Después de eliminar la entrada "FacebookAppID" del archivo plist y volver a ingresarlo escribiéndolo realmente, ¡funcionó!

Así que al copiar/pegar la cadena "FacebookAppID" del archivo HTML al archivo plist, también se copió alguna marca invisible o se dañó la codificación de caracteres.

+2

Huh ... loco. esto me llevó años descubrirlo, pero esta respuesta realmente solucionó el problema. ¡Gracias! – Buzzrick

+0

Absolutamente loco, esto funciona. Supongo que tiene algo que ver con cómo se almacenan y actualizan los archivos plist. – Eugene

2

Otro posible error que puede cometer aquí es utilizar la búsqueda rápida para buscar "plist" y no darse cuenta de que está agregando la ID de la aplicación al archivo plist incorrecto. Si ha incluido un marco como el SDK de Google Maps, tiene su propio archivo plist.

5

En mi caso, tipeé estúpidamente FacebookAppId con una minúscula 'd'. Solo ponerlo en caso de que alguien tenga el mismo problema.

6

Solo por cara. Tuve este problema hoy y finalmente me di cuenta de que simplemente colocaba las entradas en el archivo .plist incorrecto . Si filtra los archivos de su proyecto (abajo a la izquierda) escriba .plist y es posible que vea dos archivos. uno es las pruebas y el otro es el que realmente necesita configurar. ¡Buena suerte!

+0

+1 Dios mío, ¿qué tan grueso soy? – Damo

-1

solo, además de las respuestas anteriores: incluso si usted notado que agregó FacebookAppID en un archivo * .Plist mal y sigue teniendo el mismo error, compruebe de nuevo . Probablemente lo haya reemplazado en otro incorrecto * .plist

+0

esto pertenece a un comentario sobre la respuesta anterior –

+0

@ Félix sí, pero quise decir que es posible equivocarse dos veces, especialmente si tiene pocas bibliotecas adjuntas con sus propias listas. Así que solo necesito ser muy atento, es un error bastante común y bastante estúpido. – slxl

+0

sí. Así que ponlo en un comentario :) existen comentarios exactamente para esas precisiones y consejos de "necesitas estar atento". otras personas pueden votar por tu comentario si lo encuentran útil, incluso hay una insignia para muy buenos comentarios :) –

Cuestiones relacionadas