获取有关我不使用的权限请求的错误

Posted

技术标签:

【中文标题】获取有关我不使用的权限请求的错误【英文标题】:Getting error about request for permissions that I don't use 【发布时间】:2020-03-31 15:56:55 【问题描述】:

当我发布我的应用程序(用 Flutter 编写)时,我从 App Store Connect 收到许多错误

ITMS-90683:Info.plist 中缺少用途字符串 - 您的应用代码引用了一个或多个访问敏感用户数据的 API。应用程序的 Info.plist 文件应包含一个 NSContactsUsageDescription 键和一个面向用户的目的字符串,清楚而完整地解释您的应用程序需要数据的原因。从 2019 年春季开始,所有提交到 App Store 的访问用户数据的应用程序都必须包含目的字符串。如果您使用的是外部库或 SDK,它们可能会引用需要目的字符串的 API。虽然您的应用可能不使用这些 API,但仍需要使用目的字符串。您可以联系库或 SDK 的开发人员,并要求他们发布不包含 API 的代码版本。了解更多信息 (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。

ITMS-90683:Info.plist 中缺少用途字符串 - 您的应用代码引用了一个或多个访问敏感用户数据的 API。应用的 Info.plist 文件应该包含一个 NSCalendarsUsageDescription 键和一个面向用户的目的字符串,清楚而完整地解释为什么你的应用需要数据。从 2019 年春季开始,所有提交到 App Store 的访问用户数据的应用程序都必须包含目的字符串。如果您使用的是外部库或 SDK,它们可能会引用需要目的字符串的 API。虽然您的应用可能不使用这些 API,但仍需要使用目的字符串。您可以联系库或 SDK 的开发人员,并要求他们发布不包含 API 的代码版本。了解更多信息 (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。

我可以添加这些权限要求,但我的应用程序不使用任何这些。这是否来自我使用的依赖项之一,如果是,我怎么知道是哪一个?

我也收到以下错误

ITMS-90078:缺少推送通知权利 - 您的应用似乎注册了 Apple 推送通知服务,但应用签名的权利不包括“aps-environment”权利。如果您的应用程序使用 Apple 推送通知服务,请确保您的应用程序 ID 在配置门户中启用推送通知,并在使用包含“aps-environment”权利的分发配置文件签署您的应用程序后重新提交。 Xcode 不会在构建时自动从配置文件中复制 aps-environment 权利。这种行为是故意的。要使用此权利,请在项目编辑器的“功能”窗格中启用推送通知,或手动将权利添加到您的权利文件中。如需更多信息,请参阅https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1。

我不相信我使用任何推送通知,所以也不确定这个要求来自哪里。

我的应用确实在其 WebView 中打开了 html 文件,所以也许所有这些都是从这里来的?

【问题讨论】:

【参考方案1】:

我已向 ios App Store 提交了多个应用程序,并体验了您发布的内容。 Flutter 的下划线库(以及管理权限的第 3 方库)是导致显示错误/警告的原因。

我的应用已通过相应的说明获得批准。例如,我放置了“应用程序框架需要此权限才能正常运行”。

您应该看一下颤振问题 21941,它对此进行了更详细的讨论。

https://github.com/flutter/flutter/issues/21941

【讨论】:

以上是关于获取有关我不使用的权限请求的错误的主要内容,如果未能解决你的问题,请参考以下文章

将应用程序上传到 Playstore 时出现有关与相机相关的权限的错误

获取有关“间接级别不同”的错误

API Facebook 营销错误:不支持的获取请求。 ID 为 XXXXXX 的对象不存在,由于缺少权限而无法加载

我在尝试发出与位置有关的数据库请求时遇到问题

在第二个 axios api 调用上获取错误 400 错误请求

ssh2-sftp-client get()请求提供“拒绝权限-错误”