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

Kal*_*zem 43 facebook ios application-loader facebook-ios-sdk

在使用Application Loader提交我的应用程序时,我收到了此警告.

The app references non-public selector in MyApp : id
Run Code Online (Sandbox Code Playgroud)

此警告可能会从Apple AppStore的验证中拒绝我的应用程序.

我的应用程序使用Facebook SDK iOS 3.1.1(也尝试过3.1)

Kal*_*zem 65

出现此问题的原因是适用于iOS的Facebook SDK.

Application Loader禁止在任何FBGraphUser相关类中使用变量"id"(也许其他变量也没有测试) - 例如:

id<FBGraphUser> friend
id<FBGraphUserExtraFields>user
Run Code Online (Sandbox Code Playgroud)

截至2013年1月,Facebook已被告知此问题:错误报告

目前的解决方法是使用以下方法:

[user objectForKey:@"id"]
[friend objectForKey:@"id"]
Run Code Online (Sandbox Code Playgroud)

代替的user.idfriend.id因为不同的Facebook样品中示出.

  • SDK 3.8中存在问题.使用`user [@"id"]`而不是`user.id`可以消除警告. (4认同)
  • 这个应用程序是否会被应用程序商店拒绝? (3认同)
  • 听起来这是一个回归的问题.在iOS7之前我没有得到它.使用最新的FB SDK.更换点符号可以消除错误. (2认同)