在使用应用程序加载器提交我的应用程序时,我遇到了这个警告。
The app references non-public selector in MyApp : id
这个警告有可能导致我的应用程序被苹果AppStore的验证拒绝。
我的应用程序正在使用Facebook SDK iOS 3.1.1(也尝试过3.1)。
在使用应用程序加载器提交我的应用程序时,我遇到了这个警告。
The app references non-public selector in MyApp : id
这个警告有可能导致我的应用程序被苹果AppStore的验证拒绝。
我的应用程序正在使用Facebook SDK iOS 3.1.1(也尝试过3.1)。
id<FBGraphUser> friend
id<FBGraphUserExtraFields>user
自2013年1月以来,Facebook已经知悉了这个问题:Bug Report
目前的解决方法是使用以下方法:
[user objectForKey:@"id"]
[friend objectForKey:@"id"]
在不同的 Facebook 示例中,使用 user.id
和 friend.id
。
改为使用其他方式。
user[@"id"]
而不是user.id
可以消除警告。 - Gabriele Petronella对于任何新来此处寻找答案的人,有关此问题似乎已在Facebook SDK更改日志中的v3.14.1中修复。
https://developers.facebook.com/docs/ios/change-log-3.x/
为避免应用商店提交警告,类型FBGraphObject
、FBGraphPlace
、FBOpenGraphAction
和FBOpenGraphObject
上的id属性已被弃用,改用objectID
。
为避免应用商店提交警告,FBLinkShareParams
和FBOpenGraphObject
的description属性已被弃用,分别改用linkDescription和objectDescription
。
为了更新搜索引擎中的人,这个问题已经在最新的Facebook SDK中解决了(我们刚刚将项目迁移到3.7.1版本的库,验证警告消失了)。
@property (retain, nonatomic) NSString *id;
to
@property (retain, nonatomic) NSString *UserId;
验证警告在v3.13中也存在。我不知道这对其他人是否有效,但这是一个快速解决办法,可以消除错误。
在FBGraphUser.h的第41行左右,我进行了以下更改:
@property (retain, nonatomic) NSString *id;
改为
@property (retain, nonatomic) NSString *FBUserID;
我也收到了有关setProfileId的验证警告,所以我去FBProfilePictureView.h并将第54行和76行的profileID更改为FBID。
然后,我更新了我的游戏ViewController中的FBLoginView信息以反映这些更改。我的应用程序中与FB相关的所有内容似乎仍在正常工作,并且已通过Application Loader验证。
文件 FBGraphUser.h
更改
@property (retain, nonatomic) NSString *id;
为
@property (retain, nonatomic) NSString *FbUserId;