web-dev-qa-db-fra.com

L'application fait référence à des sélecteurs non publics dans Payload/<NomApp> .app/<Nom de l'application>: décodeur

Je reçois cet avertissement lors de la soumission de l'application dans la boutique d'applications via l'organisateur.

L'application fait référence à des sélecteurs non publics dans Payload/.app /: decoder

je sais que nous recevons cet avertissement si nous utilisons une API tierce dans notre application. J'ai utilisé SOCKETIO-ObjC bibliothèque pour la fonctionnalité de chat dans l'application. Également utilisé facebook iOS sdk pour la mise en œuvre de fb. Je ne comprends donc pas exactement ce qui provoque cet avertissement.! Veuillez trouver en pièce jointe ScreenShot pour une meilleure compréhension

70
Akshay Aher

Vous pouvez obtenir cet avertissement uniquement pour l'utilisation d'un sélecteur dans votre propre code ou d'un code tiers portant le même nom qu'un sélecteur marqué comme non public. Ca m'arrive tout le temps. Je n'ai jamais été rejeté pour cela.

Par "même nom", j'entends simplement quelque chose d'aussi simple que d'avoir un objet avec ce sélecteur:

-(id) XYZKMyClass doSomethingFancy:(id) toThis

... et il existe un sélecteur comme celui-ci pour une fonctionnalité Apple interne

-(id) ApplesClass  doSomethingFancy:(id) toSomething

So: Ce qu’ils semblent rechercher, c’est la signature - (id) doSomethingFancy: (id). Vous pouvez voir combien il est très facile de se heurter accidentellement à cela.

Vraisemblablement, ils effectuent une vérification plus approfondie au siège de la police de l'App Store et déterminent que le sélecteur marqué est dans votre code, et donc, OK.

114
Anders Johansen

Cela peut vous aider:

Avant:

#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

Après:

#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

J'obtiens ce lien: http://blog.csdn.net/erica_sadun/article/details/12188083

Vérifiez votre Adhésion cible pour toutes les classes utilisées dans le projet. Dans certains cas, lorsque vous créez ou copiez votre cible, l'avertissement peut apparaître sans erreur de lien.

0
Petr Syrov