74

通过管理器将应用程序提交到应用商店时,我收到此警告。

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

我知道如果我们在应用程序中使用任何第三方 API,就会收到此警告。我在应用程序中使用SOCKETIO-ObjC库来实现聊天功能。还使用 facebook iOS sdk 进行 fb 实现。所以我不知道是什么原因导致了这个警告。!请找到附加的屏幕截图以便更好地理解

4

3 回答 3

117

您可能会因为在您自己的代码或第三方代码中使用与标记为非公共的某些选择器同名的选择器而收到此警告。一直发生在我身上。从来没有被拒绝过。

通过“同名”,我的意思是简单的事情,就像你有一个带有这个选择器的对象:

-(id) XYZKMyClass doSomethingFancy:(id) toThis

...并且有一个像这样的选择器用于内部 Apple 功能

-(id) ApplesClass  doSomethingFancy:(id) toSomething

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

据推测,他们在 App Store Police HQ 进行了更深入的检查,并确定标记的选择器在您的代码中,因此可以。

于 2013-10-15T10:48:27.070 回答
4

这可以帮助您:

前:

#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

于 2014-04-17T14:03:22.783 回答
1

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

于 2015-01-30T14:25:07.973 回答