该应用程序在有效负载/<Appname>.app/<App名称>中引用非公共选择器:解码器


73

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

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

我知道如果我们在应用程序中使用任何第三方API,就会收到此警告。我已将SOCKETIO-ObjC库用于应用程序中的聊天功能。还使用了Facebook iOS sdk进行fb实施。因此,我没有确切知道导致此警告的原因。请找到随附的ScreenShot以更好地了解

Answers:


117

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

“同名”是指您使用此选择器创建一个对象就一样简单:

-(id) XYZKMyClass doSomethingFancy:(id) toThis

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

-(id) ApplesClass  doSomethingFancy:(id) toSomething

所以:他们似乎正在寻找签名-(id)doSomethingFancy:(id)。您会看到意外撞到这很容易。

大概他们在App Store警察总部进行了更深入的检查,确定标记的选择器在您的代码中,因此确定。


1
别客气。抱歉,我无法为您提供官方解释的链接,但我无法找到任何与此主题相关的信息。我可以肯定地说的是,每次我向主应用程序提交更新时,都会发生这种情况,到目前为止,还没有发生任何不良情况。
Anders Johansen

35
我希望有一种搜索非公共选择器的方法,以便可以重命名它。
Hackmodford 2014年

4
知道此线程已有几个月的历史了,但是...是否有办法在编译/构建时(而不是在将应用程序提交给商店之后)通知名称空间冲突?
拜伦

1
嗨,拜伦,很抱歉,如果没有找到我。
Anders Johansen 2014年

苹果可以拒绝同样的警告,例如:该应用程序在Payload / .app /中引用了非公共选择器:id @AndersJohansen
Dhaval Bhadania

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


那是我的确切问题。谢谢
Shaheen Ghiassy 2014年

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.