web-dev-qa-db-fra.com

L'application référence le sélecteur non public dans l'id (SDK Facebook iOS)

Je recevais cet avertissement lors de la soumission de mon application avec Application Loader.

The app references non-public selector in MyApp : id

Cet avertissement peut éventuellement rejeter mon application de la validation Apple AppStore.

Mon application utilise Facebook SDK iOS 3.1.1 (également essayé avec 3.1)

43
Kalzem

Ce problème se produit à cause du SDK Facebook pour iOS.

Application Loader interdit l'utilisation de la variable "id" à partir de toute classe liée à FBGraphUser (peut-être que d'autres variables aussi n'ont pas été testées) - par exemple. : 

id<FBGraphUser> friend
id<FBGraphUserExtraFields>user

Facebook est au courant de ce problème à partir de janvier 2013: Bug Report

La solution de rechange pour le moment consiste à utiliser ceux-ci:

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

au lieu de user.id et friend.id comme indiqué dans les différents exemples Facebook.

65
Kalzem

Juste pour mettre à jour pour les personnes venant des moteurs de recherche, ceci est corrigé dans le dernier SDK de Facebook (nous venons de déplacer notre projet vers la bibliothèque version 3.7.1 et les avertissements de validation ont disparu). 

3
Iain Barclay

Pour tous ceux qui viennent ici et cherchent une réponse à ce sujet. Le problème semble avoir été résolu dans v3.14.1 selon le journal des modifications du SDK de Facebook.

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

  • La propriété id sur les types FBGraphObject, FBGraphPlace, FBOpenGraphAction et FBOpenGraphObject est déconseillée dans En faveur de objectID pour éviter les avertissements sur la soumission de la boutique d'applications.

  • La propriété de description de FBLinkShareParams et FBOpenGraphObject
    est déconseillé au profit de linkDescription et
    objectDescription, respectivement, pour éviter la soumission de magasin d'applications
    avertissements.

3
Out of Orbit

Facebook iOS SDK 3.12 le même problème dans FBGraphUser.h.

Changement

@property (retain, nonatomic) NSString *id;

à

@property (retain, nonatomic) NSString *UserId;
2
gabemorales

Fichier FBGraphUser.h  

changement 

@property (retenue, nonatomique) NSString * id;

par

@property (retenue, nonatomique) NSString * FbUserId;

0
Carlos Avalos

J'ai résolu ce problème (où 13.1 générerait toujours des avertissements et produirait un fichier binaire invalide dans itunesconnect) en téléchargeant le source FacebookSDK à partir de Github ( link ) et en utilisant le script "build_framework.sh" dans le répertoire scripts. Ensuite, j'ai ajouté le framework généré à mon projet Xcode - et je n'ai plus d'avertissements.

0
Nicolinux

Utilisez Facebook iOS SDK 3.13. il n'y aura pas d'avertissement de validation. 

0
Nookaraju