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)
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.
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).
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 etobjectDescription
, respectivement, pour éviter la soumission de magasin d'applications
avertissements.
Facebook iOS SDK 3.12 le même problème dans FBGraphUser.h.
Changement
@property (retain, nonatomic) NSString *id;
à
@property (retain, nonatomic) NSString *UserId;
Fichier FBGraphUser.h
changement
@property (retenue, nonatomique) NSString * id;
par
@property (retenue, nonatomique) NSString * FbUserId;
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.
Utilisez Facebook iOS SDK 3.13. il n'y aura pas d'avertissement de validation.