该应用程序在id(Facebook SDK iOS)中引用非公共select器
我在使用Application Loader提交应用程序时遇到了此警告。
The app references non-public selector in MyApp : id
此警告可能会从苹果AppStore的validation中拒绝我的应用程序。
我的应用程序正在使用Facebook SDK的iOS 3.1.1(也试过3.1)
这个问题是由于iOS的Facebook SDK发生的。
Application Loader禁止从任何FBGraphUser相关类中使用variables“id”(也可能是其他variables,没有testing) – 例如:
id<FBGraphUser> friend id<FBGraphUserExtraFields>user
截至2013年1月,Facebook被告知这个问题: 错误报告
目前的解决方法是使用这些:
[user objectForKey:@"id"] [friend objectForKey:@"id"]
而不是像user.id
和friend.id
那样显示在不同的Facebook样本中。
只是为了更新来自search引擎的人,这已经在最新的Facebook SDK(已经将我们的项目移动到库版本3.7.1并且validation警告消失了)中得到修复。
对于任何新来的人在这里寻找答案。 根据Facebook SDK更改日志,问题似乎已在v3.14.1中得到修复
https://developers.facebook.com/docs/ios/change-log-3.x/
-
types
FBGraphObject
,FBGraphPlace
,FBOpenGraphAction
和FBOpenGraphObject
的id属性已被弃用,以objectID
FBOpenGraphAction
,以避免app store提交警告。 -
FBLinkShareParams
和FBOpenGraphObject
的描述属性
已被弃用,以linkDescription和
objectDescription
,以避免app store提交
警告。
Facebook的iOS SDK 3.12 FBGraphUser.h中的相同的问题。
更改
@property (retain, nonatomic) NSString *id;
至
@property (retain, nonatomic) NSString *UserId;
文件FBGraphUser.h
更改
@属性(保留,非primefaces)NSString * ID;
通过
@属性(保留,非primefaces)NSString * FbUserId;
使用Facebook iOS SDK 3.13。 将不会有任何validation警告。
我通过从Github下载FacebookSDK源代码( 链接 )并使用脚本目录中的“build_framework.sh”脚本解决了这个问题(其中13.1仍会生成警告并在itunesconnect中生成无效的二进制文件)。 然后将生成的框架添加到我的Xcode项目 – 并没有得到更多的警告。
validation警告也出现在v3.13中。 我不知道这是否会为其他人工作,但他是一个快速的解决方法,摆脱了错误。 在第41行的FBGraphUser.h中,我改变了…
@property (retain, nonatomic) NSString *id;
至
@property (retain, nonatomic) NSString *FBUserID;
我也得到了关于setProfileId相同的validation警告,所以我去了FBProfilePictureView.h并将第54&76行上的profileID更改为FBID。
然后我在游戏的ViewController中更新了我的FBLoginView信息,以反映这些变化。 一切FB相关似乎仍然在我的应用程序,它通过了应用程序加载程序validation。