The app references non-public selectors in Payload/<Appname>.app/<App name>: decoder

33,153

Solution 1

You may get this warning just for using a selector in your own code or third party code that has the same name as some selector that is marked as non-public. Happens to me all the time. Never got rejected for it.

By "same name" i mean just something as simple as you having an object with this selector:

-(id) XYZKMyClass doSomethingFancy:(id) toThis

...and there being a selector like this for an internal Apple functionality

-(id) ApplesClass  doSomethingFancy:(id) toSomething

So: What it seems they are looking for is the signature -(id) doSomethingFancy:(id). You can see how it's very easy to accidentally bump up against this.

Presumably they perform a deeper check at the App Store Police HQ, and determine that the flagged selector is in your code, and hence OK.

Solution 2

This can help you:

Before:

#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

After:

#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

I get in this link: http://blog.csdn.net/erica_sadun/article/details/12188083

Solution 3

Check your Target Membership for all classes used in project. In some cases when you create or copy your target the warning may appears without link error.

Share:
33,153
Akshay Aher
Author by

Akshay Aher

I am iPhone/iPad application Developer.I am here to share knowledge

Updated on January 31, 2020

Comments

  • Akshay Aher
    Akshay Aher over 4 years

    I am getting this warning while submitting app to the Apps store through organizer.

    The app references non-public selectors in Payload/.app/: decoder

    i know we get this warning if we use any Third Party API in our application. I have used SOCKETIO-ObjC library for chat functionality in application. Also used facebook iOS sdk for fb implementation.So i am not getting exactly what causes this warning.! Please find attached ScreenShot for better understanding

  • Anders Johansen
    Anders Johansen over 10 years
    You're welcome. Sorry I can't get you a link to an official explanation, but I haven't been able to find any on this topic. All I can say for sure is that this happens to me every time I submit an update to my primary app, and nothing bad has happened so far.
  • Hackmodford
    Hackmodford over 10 years
    I wish there was a way to search for the non-public selector so that I could rename it.
  • Byron
    Byron about 10 years
    Aware that this thread is months old but ... Is there way to be informed of the namespace collision at compile/build time rather than after submitting the app to the store?
  • Anders Johansen
    Anders Johansen about 10 years
    Hi Byron, sorry if there is I have not found it.
  • Dhaval Bhadania
    Dhaval Bhadania about 10 years
    can apple will reject for same warning like : The app references non-public selectors in Payload/.app/: id @AndersJohansen
  • Anders Johansen
    Anders Johansen about 10 years
    What do you mean Dhaval?
  • Hackmodford
    Hackmodford about 10 years
    @DhavalBhadania I have not been rejected and have submitted updates multiple times.
  • Shaheen Ghiassy
    Shaheen Ghiassy over 9 years
    That was my exact problem. Thanks
  • Felipe
    Felipe about 9 years
    I was just so lazy I didn't see that it didn't stop the app to upload to iTunes Connect. Thanks, mate.
  • franckfournier
    franckfournier over 8 years
    Any idea for searching such public selector ?