2013-10-15 27 views
70

我在通過組織者將應用提交給應用商店時收到此警告。該應用引用了Payload/<Appname> .app/<App name>中的非公開選擇器:解碼器

該應用程序引用在有效載荷/。應用程序/非公開選擇:解碼器

我知道,如果我們在我們的應用中使用任何第三方API,我們得到這樣的警告。我在應用程序中使用了SOCKETIO-ObjC庫來實現聊天功能。也用Facebook的sdk fb實現。所以我沒有得到確切的是什麼導致這個警告。請參閱附加的ScreenShot以便更好地理解

回答

113

您可能會收到此警告只是爲了在自己的代碼中使用選擇器或與選定器名稱相同的第三方代碼被標記爲非公開。總是會發生在我身上。從來沒有被拒絕。

通過「同名」我的意思只是一些簡單,你有這個選擇的對象:

-(id) XYZKMyClass doSomethingFancy:(id) toThis 

...有這樣一個內部蘋果功能

-(id) ApplesClass doSomethingFancy:(id) toSomething 
是一個選擇

所以:他們看起來似乎是簽名 - (id)doSomethingFancy:(id)。你可以看到如何很容易意外碰到這一點。

想必他們會在App Store警察總部進行更深入的檢查,並確定標記的選擇器在您的代碼中,因此確定。

+1

謝謝你的答案.. !!! –

+1

不客氣。對不起,我不能給你一個官方解釋的鏈接,但我一直沒有找到任何關於這個主題。我可以肯定地說,每當我向我的主應用程序提交更新時,都會發生這種情況,到目前爲止沒有發生任何不良事件。 –

+34

我希望有一種方法來搜索非公共選擇器,以便我可以重命名它。 – Hackmodford

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

+0

這是我確切的問題。謝謝 –

0

檢查您的目標會員適用於項目中使用的所有類別。在某些情況下,當您創建或複製目標時,警告可能會顯示而沒有鏈接錯誤。

相關問題