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

问题描述:

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

I was having this warning when submitting my app with Application Loader.

The app references non-public selector in MyApp : id

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

This warning can potentially reject my app from Apple AppStore's validation.

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

My app is using Facebook SDK iOS 3.1.1 (also tried with 3.1)

出现此问题的原因是 Facebook SDK for iOS.

This problem happens because of the Facebook SDK for iOS.

Application Loader 禁止使用来自任何 FBGraphUser 相关类的变量id"(也许其他变量也是如此,没有测试) - 例如:

Application Loader forbids the use of the variable "id" from any FBGraphUser related class (maybe others variables too, didn't test) - e.g. :

id<FBGraphUser> friend
id<FBGraphUserExtraFields>user

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

Facebook is informed about this problem as of january 2013 : Bug Report

目前的解决方法是使用这些:

The workaround for the moment is to use these:

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

而不是不同 Facebook 示例中所示的 user.idfriend.id.

instead of user.id and friend.id as shown in the different Facebook samples.