2013-10-15 3 views
70

Ich erhalte diese Warnung, wenn ich die App über den Organizer an den App Store sende.Die App verweist auf nicht öffentliche Selektoren in Payload/<Appname> .app/<App name>: Decoder

Die App Referenzen nicht-öffentliche Selektoren in Payload/.app /: Decoder

ich weiß, dass wir diese Warnung erhalten, wenn wir jeden Third Party-API in unserer Anwendung verwenden. Ich habe SOCKETIO-ObjC Bibliothek für Chat-Funktionalität in der Anwendung verwendet. Auch verwendet Facebook iOS SDK für fb-Implementierung.So bekomme ich nicht genau, was diese Warnung verursacht.! Anbei finden Sie ScreenShot

Antwort

113

Sie können diese Warnung nur für die Verwendung eines Selektors in Ihrem eigenen Code oder Drittanbietercode erhalten, der den gleichen Namen wie ein Selektor hat, der als nicht öffentlich gekennzeichnet ist. Mir passiert die ganze Zeit. Nie wurde dafür abgelehnt.

von „same name“ Ich meine nur etwas so Einfaches wie ein Objekt mit diesem Selektor mit:

-(id) XYZKMyClass doSomethingFancy:(id) toThis 

... und dort einen Selektor, wie dies für eine interne Apple-Funktionalität ist

-(id) ApplesClass doSomethingFancy:(id) toSomething 

Also: Was sie suchen, ist die Signatur - (id) doSomethingFancy: (id). Sie können sehen, wie leicht es ist, versehentlich dagegen anzukämpfen.

Vermutlich führen sie eine tiefere Überprüfung im App Store Police HQ durch und stellen fest, dass der markierte Selektor in Ihrem Code und damit in Ordnung ist.

+1

Danke für die Antwort .. !!! –

+1

Gern geschehen. Leider kann ich Ihnen keinen Link zu einer offiziellen Erklärung geben, aber ich konnte keine zu diesem Thema finden. Alles was ich mit Sicherheit sagen kann, ist, dass mir das jedes Mal passiert, wenn ich ein Update für meine primäre App einreiche, und bis jetzt ist nichts Schlimmes passiert. –

+34

Ich wünschte, es gäbe eine Möglichkeit, nach dem nichtöffentlichen Selektor zu suchen, damit ich ihn umbenennen könnte. – Hackmodford

4

Dies kann Ihnen helfen:

Bevor:

#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 

Nach:

#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 

ich in diesem Link erhalten: http://blog.csdn.net/erica_sadun/article/details/12188083

+0

Das war mein exaktes Problem. Vielen Dank –

0

prüfen Ihre Zielmitgliedschaft für alle im Projekt verwendeten Klassen. Wenn Sie Ihr Ziel erstellen oder kopieren, wird die Warnung möglicherweise in einigen Fällen ohne Verbindungsfehler angezeigt.

Verwandte Themen