web-dev-qa-db-ja.com

アプリはPayload / <Appname> .app / <App name>の非パブリックセレクターを参照します:デコーダー

オーガナイザーを通じてアプリをAppsストアに送信しているときにこの警告が表示されます。

アプリはPayload/.app /:デコーダーの非公開セレクターを参照します

アプリケーションでサードパーティAPIを使用すると、この警告が表示されることを知っています。アプリケーションのチャット機能に SOCKETIO-ObjC ライブラリを使用しました。また、FBの実装にFacebookのiOS SDKを使用したため、この警告の原因を正確に把握できていません!添付の ScreenShot をご覧ください。

71
Akshay Aher

非公開としてマークされているセレクターと同じ名前を持つ独自のコードまたはサードパーティコードでセレクターを使用する場合にのみ、この警告が表示されることがあります。私にいつも起こります。決して拒否されませんでした。

「同じ名前」とは、このセレクターを持つオブジェクトを持っているのと同じくらい単純なことを意味します。

-(id) XYZKMyClass doSomethingFancy:(id) toThis

...そして内部Apple機能のためにこのようなセレクターがあります

-(id) ApplesClass  doSomethingFancy:(id) toSomething

だから、彼らが探しているように見えるのは、署名-(id)doSomethingFancy:(id)です。誤ってこれにぶつかるのは非常に簡単です。

おそらく、彼らはApp Store Police HQでより詳細なチェックを実行し、フラグ付きセレクターがコード内にあること、したがってOKであると判断します。

114
Anders Johansen

これはあなたを助けることができます:

前:

#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/1218808

プロジェクトで使用されるすべてのクラスのTarget Membershipを確認してください。ターゲットを作成またはコピーすると、リンクエラーなしで警告が表示される場合があります。

0
Petr Syrov