应用程序引用 Payload/< Appname > . App/< App name > : decder 中的非公共选择器

当我通过组织者向应用程序商店提交应用程序时,我收到了这个警告。

应用程序引用 Payload/. app/: 解码器中的非公共选择器

我知道如果我们在应用程序中使用任何第三方 API,就会收到这个警告。我已经在应用程序中使用了 SOCKETIO-OBC库的聊天功能。同样使用 facebook iOS sdk 作为 fb implementation.so ,我不知道究竟是什么导致了这个警告。!为了更好的理解,请查看附件 截图

34486 次浏览

如果在自己的代码中使用选择器,或者在第三方代码中使用与某些标记为非公共的选择器同名的选择器,则可能会得到此警告。我经常遇到这种事。从没被拒绝过。

我所说的“同名”是指一些简单的东西,比如你有一个带有这个选择器的对象:

-(id) XYZKMyClass doSomethingFancy:(id) toThis

还有这样一个内部苹果功能的选择器

-(id) ApplesClass  doSomethingFancy:(id) toSomething

所以: 看起来他们正在寻找的是签名-(id) doSomething Fancy: (id)。你可以看到很容易不小心碰到这个。

据推测,他们在 App Store Police 总部执行更深入的检查,并确定标记的选择器在您的代码中,因此 OK。

这可以帮助你:

以前:

#import "SocketIOJSONSerialization.h"


extern NSString * const SocketIOException;


// covers the methods in SBJson and JSONKit
@interface NSObject (SocketIOJSONSerialization)


// used by both JSONKit and SBJson
- (id) objectWithData:(NSData *)data;


// Use by JSONKit serialization
- (NSString *) JSONString;
**- (id) decoder;**


// Used by SBJsonWriter
- (NSString *) stringWithObject:(id)object;


@end

之后:

#import "SocketIOJSONSerialization.h"


extern NSString * const SocketIOException;


// covers the methods in SBJson and JSONKit
@interface NSObject (SocketIOJSONSerialization)


// used by both JSONKit and SBJson
- (id) objectWithData:(NSData *)data;


// Use by JSONKit serialization
- (NSString *) JSONString;
**- (id) jsonDecoder;**


// Used by SBJsonWriter
- (NSString *) stringWithObject:(id)object;


@end

我得到了这个链接: http://blog.csdn.net/erica_sadun/article/details/12188083

检查在项目中使用的所有类的 目标成员。在某些情况下,当您创建或复制目标时,可能会出现没有链接错误的警告。