43

使用 Application Loader 提交我的应用程序时出现此警告。

The app references non-public selector in MyApp : id

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

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

4

8 回答 8

65

发生此问题的原因是 Facebook SDK for iOS。

应用程序加载器禁止使用任何 FBGraphUser 相关类中的变量“id”(可能还有其他变量,未测试) - 例如:

id<FBGraphUser> friend
id<FBGraphUserExtraFields>user

Facebook 于 2013 年 1 月获悉此问题:错误报告

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

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

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

于 2013-01-21T22:02:33.543 回答
3

对于任何新来这里寻找答案的人。根据 Facebook SDK 更改日志,该问题似乎已在 v3.14.1 中得到修复

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

  • FBGraphObject类型、FBGraphPlaceFBOpenGraphAction和的 id 属性FBOpenGraphObject已被弃用,objectID以避免应用商店提交警告。

  • FBLinkShareParams和的 description 属性FBOpenGraphObject
    已被分别弃用,取而代之的是 linkDescription 和
    objectDescription,以避免应用商店提交
    警告。

于 2014-05-26T21:17:30.680 回答
3

只是为了更新来自搜索引擎的人,这已在最新的 Facebook SDK 中修复(刚刚将我们的项目移动到库版本 3.7.1 并且验证警告消失了)。

于 2013-09-16T13:22:35.317 回答
2

Facebook iOS SDK 3.12 在 FBGraphUser.h 中存在同样的问题。

改变

@property (retain, nonatomic) NSString *id;

@property (retain, nonatomic) NSString *UserId;
于 2014-02-14T05:41:01.893 回答
0

文件FBGraphUser.h

改变

@property (retain, nonatomic) NSString *id;

经过

@property (retain, nonatomic) NSString *FbUserId;

于 2014-01-30T17:04:02.090 回答
0

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

于 2014-03-11T14:22:31.353 回答
0

我通过从 Github(链接)下载 FacebookSDK 源并在脚本目录中使用“build_framework.sh”脚本解决了这个问题(13.1 仍然会生成警告并在 itunesconnect 中生成无效的二进制文件) 。然后将生成的框架添加到我的 Xcode 项目中 - 并且不再收到警告。

于 2014-04-30T14:39:09.963 回答
0

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

@property (retain, nonatomic) NSString *id;

@property (retain, nonatomic) NSString *FBUserID; 

我也收到了关于 setProfileId 的相同验证警告,所以我去了 FBProfilePictureView.h 并将第 54 行和第 76 行的 profileID 更改为 FBID。

然后我在游戏的 ViewController 中更新了我的 FBLoginView 信息以反映这些更改。与 FB 相关的所有内容似乎仍然可以在我的应用程序中运行,并且它通过了 Application Loader 验证。

于 2014-05-06T08:14:32.987 回答