该应用在 Payload/App Name.app 中引用了非公共选择器

Posted

技术标签:

【中文标题】该应用在 Payload/App Name.app 中引用了非公共选择器【英文标题】:The app references non-public selectors in Payload/App Name.app 【发布时间】:2014-05-20 16:54:27 【问题描述】:

我在验证我的应用程序时遇到问题,说我正在访问非公共选择器 cancelButtonPressed:。这个选择器在我的静态库中被调用,如下所示:

else if([self.delegate respondsToSelector:@selector(cancelButtonPressed:)])[self.delegate cancelButtonPressed:senderButton];

这是私有方法吗?当我在此之前发布应用程序时,这并没有引起任何问题。我需要解决这个问题,还是 Apple 会发现我没有调用私有方法?

【问题讨论】:

【参考方案1】:

是的 cancelButtonPressed: 是 Apple 私有方法。要仅检查 option,请单击 cancelButtonPressed 以查看它是一种公共方法。 是的,您将不得不停止使用它。 是的,Apple 有时会漏掉一些东西,然后再抓住它们。

也许是@selector(cancelButtonPressed:) 有问题,而不是直接调用触发Apple 私有方法catch 的实例。

【讨论】:

所以,我将不得不停止使用它,即使它只是我的委托中包含的常规方法之一?此外,是否有一个私有方法列表可供概述,以便我将来避免这种麻烦?另外,这个选择器属于哪个对象? 这是个问题,以前也出现过。也许是 @selector(cancelButtonPressed:) 有问题,而不是直接调用触发 Apple 私有方法 catch 的实例。 选项 click 对我没有帮助,因为该方法在我的 protocol 声明中。在这种情况下使用选项点击有什么用?【参考方案2】:

方法名很可能与Apple方法名冲突,导致误报使用私有API的问题。

尝试更改委托中的方法名称

【讨论】:

以上是关于该应用在 Payload/App Name.app 中引用了非公共选择器的主要内容,如果未能解决你的问题,请参考以下文章

Xcode:作为团队成员签署应用程序失败

iOS iTunes 应用程序链接不起作用

使用Postgres ODBC驱动程序时设置应用程序名称

Heroku 部署 Typescript

OS X 10.9 上的 QSettings - 无法找到/清除它

Kubernetes 入口烧瓶应用程序