ios - 如何调试 Apple App Loader 中的 "The app references non-public selectors"错误?

标签 ios xamarin.ios

将我的应用程序上传到 iTines 时,我收到“应用程序引用非公共(public)选择器:connectionDidDisconnect:”。如何找到哪个模块调用此类选择器?

我的应用程序使用 Twilio 客户端库,该库通过 Monotouch 绑定(bind)项目包装为单声道,在该项目中我将 connectionDidDisconnect: 导出为 TCConnectionDelegate 包装器中的 ConnectionDidDisconnect。

    [BaseType (typeof (NSObject))]
[Model]
public interface TCConnectionDelegate 
{
    //@required
     //some code was removed
    /** The TCConnection has just disconnected. 
    @param connection The TCConnection has just disconnected.
    @returns None
    */
    //-(void)connectionDidDisconnect:(TCConnection*)connection;
    [Export ("connectionDidDisconnect:")]
    [Abstract]
    void ConnectionDidDisconnect(TCConnection xonn);

}

代码运行得很好。仅当我将应用程序上传到 iTunes 时,我才会收到该错误。

Twilio lib 是否调用私有(private)选择器 connectionDidDisconnect: 或者我的定义有问题?

我将不胜感激任何帮助。

最佳答案

我相信苹果在二进制文件中进行了简单的字符串搜索来检查私有(private)选择器。这意味着对字符串 connectionDidDisconnect: 的任何使用都可能导致 Apple 拒绝您的应用。

检查 Twilio 库是否包含特定字符串的一种方法是从终端使用 strings 工具:

$ strings Twilio.dll | grep connectionDidDisconnect

关于ios - 如何调试 Apple App Loader 中的 "The app references non-public selectors"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356014/

相关文章:

iOS APN 角标(Badge)最多只能有 3 个

objective-c - iOS:从另一个文件导入调用的问题

Xamarin Assets 与可绘制资源

smtp - MT 支持 SMTP 吗?

c# - OpenGL MonoTouch 游戏中的方向

ios - swift 1.2 HealthKit

ios - 从另一个类(另一个 ViewController)编辑 UILabel

.net - 在使用 .NET XmlSerializer 类时,是否有其他人在 MonoTouch 中经历过缓慢的反序列化?

xamarin.ios - IOS 9中的AVPlayer TimeControlstatus应用程序崩溃

ios - 检查 MonoTouch 中 iOS 类(而不是方法)的可用性