该应用引用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)
发生此问题,因为Facebook的SDK iOS版。
应用程序加载器禁止使用任何FBGraphUser相关类变量“ID”的(也许其他变量太多,没有测试) - 例如:
id<FBGraphUser> friend
id<FBGraphUserExtraFields>user
Facebook是了解这个问题,因为2013年1:Bug Report
暂时的解决方法是使用这些:
[user objectForKey:@"id"]
[friend objectForKey:@"id"]
,而不是user.id
和friend.id
如图所示不同的Facebook样本。
由于这个原因,应用程序是否会被拒绝? –
此外,我使用的方式与BabyAzerty所描述的相同,但我仍然收到此警告。您是否可以告诉我其他原因可能是什么原因。我已经使用了KVC。谢谢。 –
就我而言,这个应用程序被自动机器人验证程序直接明确拒绝,我无法将它推送到AppStore。也许今天它是不同的(但我几乎不相信)?不幸的是,这是我唯一的问题。我建议你仔细检查每个Facebook变量/数组是否与ForKey函数一起使用。祝你好运 ! – Kalzem
只是为人们来到这里,来自搜索引擎的更新,这将固定在最新的Facebook SDK(刚刚搬进我们的项目库版本3.7.1和验证警告就走了)。
我仍然与3.8:S –
我看到它与3.9,但我的状态是“提交验证警告”,等待审查。也许苹果会做正确的事情? – JLundell
@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;
我解决了这个问题(其中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相关似乎仍然在我的应用程序中工作,它通过了应用程序加载器验证。
我不会建议更改FB的内容,因为当您更新SDK时,更改将会中断。 – Kalzem
对于任何新来这里寻找答案。这个问题似乎已经根据Facebook的SDK更改日志
https://developers.facebook.com/docs/ios/change-log-3.x/
id属性的类型
FBGraphObject
,FBGraphPlace
,FBOpenGraphAction
,并FBOpenGraphObject
已经在 赞成被否决被固定在v3.14.1的objectID
,以避免应用商店提交警告。的
FBLinkShareParams
和FBOpenGraphObject
描述属性已分别弃用,取而代之的linkDescription和objectDescription
,以避免应用程序商店提交
警告。
该警告再次出现在Facebook iOS SDK 3.8中(以前版本中没有这样的警告) –