您的应用包含非公开 API 使用

Posted

技术标签:

【中文标题】您的应用包含非公开 API 使用【英文标题】:Your app contains non-public API usage 【发布时间】:2013-05-27 13:02:36 【问题描述】:

我正在尝试在 App Store 上提交我的应用,但我收到了以下消息:

Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application.
The app references non-public symbols in Payload/XXX.app/XXX: CFUserNotificationDisplayNotice

其中“XXX”——应用程序名称。

谁能帮我解决这个问题?

【问题讨论】:

那么你在使用CFUserNotificationDisplayNotice()函数吗? @kroumvud:您的应用中是否使用了任何第三方库? 也许可以尝试在您的项目源中广泛搜索“CFUserNotificationDisplayNotice”,以及您的第三方库源... @kroumvud 不,这与此无关。 3rd 方库以什么形式出现?源代码还是二进制文件? @kroumvud 然后对二进制文件执行otool -tv | grep CFUserNotification - 如果找到任何内容,则第 3 方库使用该私有函数。 【参考方案1】:

私有 API 是不打算供外部开发人员使用的 API。这是为了防止在更新 SDK 时发生重大更改。

不保证私有 API 的行为。这些方法可能会在平台的未来更新中被删除。

如果您打算通过 Apple App Store 发布,您可以在您的 OSX 和 ios 应用程序中使用私有 API,但是您自己需要再次确保您的应用程序不是被即将到来的 SDK/OS 更新破坏。

您或您的捆绑包中的某些第三方框架正在使用私有 API

删除代码中提到的签名,你应该没问题。

【讨论】:

以上是关于您的应用包含非公开 API 使用的主要内容,如果未能解决你的问题,请参考以下文章

Google New Places API - 您的应用包含公开的 Google Cloud Platform

您的应用包含公开的 Google Cloud Platform (GCP) API 密钥

您的应用包含公开的 Google Cloud Platform (GCP) API 密钥。有关详细信息,请参阅此 Google 帮助中心文章

IOS 应用验证错误:非公共 API 使用和访问 UDID

含义 - 使用非公共 API 的应用程序将被拒绝

非公开 API 使用:应用引用非公开符号:__XCTFailureFormat、__XCTFailureHandler