该应用引用id中的非公开选择器(Facebook SDK iOS)

问题描述:

我在使用Application Loader提交我的应用时遇到了此警告。该应用引用id中的非公开选择器(Facebook SDK iOS)

The app references non-public selector in MyApp : id 

此警告可能会从苹果AppStore的验证中拒绝我的应用程序。

我的应用程序使用Facebook的SDK iOS版3.1.1(也试图与3.1)

+3

该警告再次出现在Facebook iOS SDK 3.8中(以前版本中没有这样的警告) –

发生此问题,因为Facebook的SDK iOS版。

应用程序加载器禁止使用任何FBGraphUser相关类变量“ID”的(也许其他变量太多,没有测试) - 例如:

id<FBGraphUser> friend 
id<FBGraphUserExtraFields>user 

Facebook是了解这个问题,因为2013年1:Bug Report

暂时的解决方法是使用这些:

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

,而不是user.idfriend.id如图所示不同的Facebook样本。

+3

由于这个原因,应用程序是否会被拒绝? –

+0

此外,我使用的方式与BabyAzerty所描述的相同,但我仍然收到此警告。您是否可以告诉我其他原因可能是什么原因。我已经使用了KVC。谢谢。 –

+1

就我而言,这个应用程序被自动机器人验证程序直接明确拒绝,我无法将它推送到AppStore。也许今天它是不同的(但我几乎不相信)?不幸的是,这是我唯一的问题。我建议你仔细检查每个Facebook变量/数组是否与ForKey函数一起使用。祝你好运 ! – Kalzem

只是为人们来到这里,来自搜索引擎的更新,这将固定在最新的Facebook SDK(刚刚搬进我们的项目库版本3.7.1和验证警告就走了)。

+7

我仍然与3.8:S –

+0

我看到它与3.9,但我的状态是“提交验证警告”,等待审查。也许苹果会做正确的事情? – JLundell

+0

@JLundell:苹果公司接受你的应用程序吗?我面临同样的问题,并且想要提出警告? –

文件FBGraphUser.h

变化

@财产(保留,非原子)的NSString * ID;

通过

@property(保留,非原子)的NSString * FbUserId;

Facebook iOS SDK 3.12 FBGraphUser.h中的相同问题。

变化

@property (retain, nonatomic) NSString *id; 

@property (retain, nonatomic) NSString *UserId; 

使用Facebook的iOS SDK 3.13。将不会有任何验证警告。

+1

不正确。问题依然存在3.13.1 – Nicolinux

+0

我曾经使用v3.13,我没有得到任何验证错误。 – Nookaraju

我解决了这个问题(其中13.1仍然会产生警告,并产生itunesconnect无效二进制)通过下载从GitHub的FacebookSDK源(link),并使用脚本目录的“build_framework.sh”脚本。然后将生成的框架添加到我的Xcode项目中 - 并没有再发出警告。

的验证警告也存在于v3.13。我不知道这是否适用于其他人,但他是一个快速解决方法,可以消除错误。 在第41行的FBGraphUser.h中,我改变了...

@property (retain, nonatomic) NSString *id;

@property (retain, nonatomic) NSString *FBUserID; 

我也越来越大约setProfileId相同的验证警告,所以我去了FBProfilePictureView.h和改变配置文件ID上线54 & 76 FBID。

然后,我在我的游戏的ViewController中更新了我的FBLoginView信息以反映这些更改。一切FB相关似乎仍然在我的应用程序中工作,它通过了应用程序加载器验证。

+0

我不会建议更改FB的内容,因为当您更新SDK时,更改将会中断。 – Kalzem

对于任何新来这里寻找答案。这个问题似乎已经根据Facebook的SDK更改日志

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

  • id属性的类型FBGraphObjectFBGraphPlaceFBOpenGraphAction,并FBOpenGraphObject已经在 赞成被否决被固定在v3.14.1的objectID,以避免应用商店提交警告。

  • FBLinkShareParamsFBOpenGraphObject
    描述属性已分别弃用,取而代之的linkDescription和
    objectDescription,以避免应用程序商店提交
    警告。