繁体   English   中英

ITMS-90683:Info.plist NSCameraUsageDescription 中缺少目的字符串

[英]ITMS-90683: Missing Purpose String in Info.plist NSCameraUsageDescription

我成功在应用商店上传了我的应用。

应用商店给我发一个 email 像这样:

应用商店连接

亲爱的开发者,

我们发现您最近交付的应用程序“Kupona Online”1.0.2 (1.2) 存在一个或多个问题。 请更正以下问题,然后重新上传。

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

此致,

应用商店团队

为了解决这个错误,我将 Info.plist 放入 Xcode 10.2.1 中,如下所示:

图片

但什么也没发生。 应用商店总是向我发送此错误。

如何修复此错误?

对于 NSCameraUsageDescription,在 Value 列中添加使用相机的确切目的。 例如, 在此处输入图片说明

人们说他们被拒绝了,即使他们没有请求访问相机。 您必须知道 Apple 会使用其静态分析工具扫描您的代码。 即使你在功能标志后面保护了它,应用商店的审查过程仍然会拒绝你的应用。 因为他们不知道你什么时候会打开那个功能标志。

此外,如果第三方服务在其代码中包含与相机访问相关的代码,您可能会遇到此问题。 再一次,即使您没有达到(第 3 方框架的)那条线,您也需要输入该键。

但是后来我遇到了问题,我们在其中添加了该 plist,但随后应用商店审核团队无法对其进行测试,因为该功能受到功能标志的保护。 而且因为他们无法测试,所以他们没有批准它¯\\ (ツ) /¯

最后但并非最不重要的一点是,如果您确实在 plist 中确实需要该密钥,请确保其推理足够通用以涵盖所有情况,例如,如果您需要访问相机以拍摄个人资料照片和扫描 QR 码,那么鉴于您的应用程序可以要求在的资料图片步骤或在plist中扫描PR的代码,那么你的描述应该涵盖的功能,而不仅仅是其中一个相机访问。 如果您说“需要获取拍摄个人资料照片的权限”,那么如果用户首先点击 QR 流程但看到您请求获取拍摄个人资料照片的权限,您可能会被拒绝。 因此,您应该说“需要访问拍摄个人资料照片和扫描新设备的二维码”

tl;dr 确定您在应用流程中请求访问的位置。 如果你需要它,那么在你的 plist 中添加它的键/值。 如果您不需要它,请注释掉该行。 您不应该仅仅为了通过应用商店审核而添加 plist。 可能会失败,但也可能会成功,但在未来的版本中它会成功......

在新版本的 IOS 中,访问相机的应用程序会触发一个对话框,提示用户允许或拒绝该应用程序的权限。

这就是为什么您需要解释应用程序访问输入设备(相机、麦克风等)的原因。

为此,您需要通过在 dict 标记内添加键和字符串描述来编辑您的项目 Runner/info.plist 文件。

<dict>
    ...
    <key>NSCameraUsageDescription</key>
    <string>My_app_name needs to access the camera to do x_thing. 
    </string>
<dict>

或者,您可以通过在xcode中打开您的产品来添加它,更多详细信息如下图所示。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM