【问题标题】:The app references non-public selectors in Payload/<Appname>.app/<App name>: decoder该应用程序在 Payload/<Appname>.app/<App name> 中引用了非公共选择器:解码器
【发布时间】:2013-10-23 02:17:56
【问题描述】:

我在通过管理器将应用提交到应用商店时收到此警告。

应用在 Payload/.app/: 解码器中引用了非公共选择器

我知道如果我们在应用程序中使用任何第三方 API,就会收到此警告。我在应用程序中使用了SOCKETIO-ObjC 库来实现聊天功能。还使用 facebook iOS sdk 进行 fb 实现。所以我不知道是什么原因导致了这个警告。!请找到附件ScreenShot以便更好地理解

【问题讨论】:

    标签: objective-c facebook-graph-api ios7 socket.io xcode5


    【解决方案1】:

    仅当在您自己的代码或第三方代码中使用与标记为非公开的选择器同名的选择器时,您可能会收到此警告。一直发生在我身上。从来没有被拒绝过。

    “同名”是指简单的事情,就像你拥有一个带有这个选择器的对象:

    -(id) XYZKMyClass doSomethingFancy:(id) toThis
    

    ...还有一个像这样的选择器用于内部 Apple 功能

    -(id) ApplesClass  doSomethingFancy:(id) toSomething
    

    所以:他们正在寻找的似乎是签名 -(id) doSomethingFancy:(id)。你可以看到很容易不小心碰到这个。

    大概他们在 App Store Police HQ 执行了更深入的检查,并确定标记的选择器在您的代码中,因此确定。

    【讨论】:

    • 不客气。抱歉,我无法为您提供官方解释的链接,但我无法找到有关此主题的任何内容。我可以肯定地说,每次我向我的主应用提交更新时都会发生这种情况,到目前为止还没有发生任何不好的事情。
    • 我希望有一种方法可以搜索非公共选择器,以便我可以重命名它。
    • 知道这个线程已经有几个月的历史了,但是......有没有办法在编译/构建时而不是在将应用程序提交到商店之后通知命名空间冲突?
    • 嗨拜伦,对不起,如果我没有找到它。
    • 可以苹果会拒绝相同的警告,如:应用程序引用了 Payload/.app/ 中的非公共选择器:id @AndersJohansen
    【解决方案2】:

    这可以帮助你:

    之前:

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

    【讨论】:

    • 这正是我的问题。谢谢
    【解决方案3】:

    检查您的目标成员身份,了解项目中使用的所有类。在某些情况下,当您创建或复制目标时,可能会出现警告,但不会出现链接错误。

    【讨论】:

      猜你喜欢
      • 2013-11-17
      • 2014-04-08
      • 2014-04-17
      • 2013-10-10
      • 2013-09-22
      • 2014-10-28
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多