webentwicklung-frage-antwort-db.com.de

Die App verweist auf nicht öffentliche Selektoren in Payload/<Appname> .app/<App-Name>: Decoder

Ich erhalte diese Warnung, während ich über den Organisator eine App an den Apps Store übermittelt.

Die App verweist auf nicht öffentliche Selektoren in Payload/.app /: Decoder

ich weiß, dass wir diese Warnung erhalten, wenn wir in unserer Anwendung eine Drittanbieter-API verwenden. Ich habe SOCKETIO-ObjC library für Chat-Funktionen in der Anwendung verwendet. Auch verwendet Facebook iOS sdk für die Implementierung von fb.So bekomme ich nicht genau die Ursache dieser Warnung. Im Anhang finden Sie ScreenShot zum besseren Verständnis

70
Akshay Aher

Diese Warnung wird möglicherweise nur angezeigt, wenn Sie einen Selektor in Ihrem eigenen Code oder einen Drittanbieter-Code verwenden, der denselben Namen wie ein als nicht öffentlich gekennzeichneter Selector hat. Geschieht mir die ganze Zeit. Wurde nie dafür abgelehnt.

Mit "gleichem Namen" meine ich nur etwas so einfaches wie Sie ein Objekt mit diesem Selektor haben:

-(id) XYZKMyClass doSomethingFancy:(id) toThis

... und es gibt eine solche Auswahl für eine interne Apple-Funktionalität

-(id) ApplesClass  doSomethingFancy:(id) toSomething

Also: Was sie suchen, ist die Signatur - (id) doSomethingFancy: (id). Sie können sehen, wie es sehr leicht ist, versehentlich dagegen zu stoßen.

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

114
Anders Johansen

Dies kann Ihnen helfen:

Vor:

#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 dem:

#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 bekomme in diesem Link: http://blog.csdn.net/erica_sadun/article/details/12188083

Überprüfen Sie Ihre Zielmitgliedschaft für alle im Projekt verwendeten Klassen. Wenn Sie ein Ziel erstellen oder kopieren, kann die Warnung in einigen Fällen ohne Verbindungsfehler angezeigt werden.

0
Petr Syrov