La aplicación hace referencia al selector no público en id (Facebook SDK iOS)

Recibí esta advertencia al enviar mi aplicación con Application Loader.

The app references non-public selector in MyApp : id 

Esta advertencia puede rechazar mi aplicación de la validación de Apple AppStore.

Mi aplicación usa Facebook SDK iOS 3.1.1 (también intenté con 3.1)

Este problema ocurre debido al SDK de Facebook para iOS.

Application Loader prohíbe el uso de la variable “id” de cualquier clase relacionada con FBGraphUser (tal vez otras variables también, no prueba) – por ejemplo:

 id friend iduser 

Facebook está informado sobre este problema a partir de enero de 2013: informe de errores

La solución por el momento es usar estos:

 [user objectForKey:@"id"] [friend objectForKey:@"id"] 

en lugar de user.id y friend.id como se muestra en las diferentes muestras de Facebook.

Solo para actualizar a las personas que vienen desde los motores de búsqueda, esto se soluciona en el último SDK de Facebook (acabamos de mover nuestro proyecto a la versión 3.7.1 de la biblioteca y las advertencias de validación se fueron).

Para cualquier persona nueva que venga aquí buscando una respuesta sobre esto. El problema parece haberse solucionado en v3.14.1 según el registro de cambios de Facebook SDK

https://developers.facebook.com/docs/ios/change-log-3.x/

  • La propiedad id en los tipos FBGraphObject , FBGraphPlace , FBOpenGraphAction y FBOpenGraphObject se ha desaprobado a favor de objectID para evitar las advertencias de envío a la tienda de aplicaciones.

  • La propiedad de descripción de FBLinkShareParams y FBOpenGraphObject
    ha quedado en desuso en favor de linkDescription y
    objectDescription , respectivamente, para evitar la presentación de la tienda de aplicaciones
    advertencias

Facebook iOS SDK 3.12 el mismo problema en FBGraphUser.h.

Cambio

 @property (retain, nonatomic) NSString *id; 

a

 @property (retain, nonatomic) NSString *UserId; 

Archivo FBGraphUser.h

cambio

@property (retener, no atómico) NSString * id;

por

@property (retener, no atómico) NSString * FbUserId;

Use Facebook iOS SDK 3.13. no habrá advertencias de validación.

Resolví este problema (donde 13.1 todavía generaría advertencias y produciría un binario no válido en itunesconnect) descargando el origen de FacebookSDK de Github ( enlace ) y usando el script “build_framework.sh” en el directorio de scripts. Luego agregué el marco generado a mi proyecto de Xcode, y no recibí más advertencias.

Las advertencias de validación también están presentes en v3.13. No sé si esto funcionará para otras personas, pero es una solución rápida que eliminó el error. En FBGraphUser.h alrededor de la línea 41, cambié …

@property (retain, nonatomic) NSString *id;

a

 @property (retain, nonatomic) NSString *FBUserID; 

También recibía la misma advertencia de validación sobre setProfileId, así que fui a FBProfilePictureView.h y cambié profileID en la línea 54 y 76 a FBID.

Luego actualicé mi información FBLoginView en el ViewController de mi juego para reflejar los cambios. Todo lo relacionado con FB parece funcionar en mi aplicación y aprobó la validación de Application Loader.

Intereting Posts