我成功地将我的应用程序上传到应用程序商店。
App Store给我发了一封这样的邮件:
App Store Connect
尊敬的开发者:
我们发现您的应用“Kupona Online”1.0.2(1.2)的最近交付存在一个或多个问题。请更正以下问题,然后重新上传。
ITMS-90683:Info.plist中缺少目的字符串-您的应用程序的代码引用了一个或多个访问敏感用户数据的API。应用程序的Info.plist文件应该包含一个NSCameraUsageDescription键,其中包含一个面向用户的目的字符串,清楚完整地解释应用程序需要这些数据的原因。从2019年 Spring 开始,提交到App Store的所有访问用户数据的应用都必须包含目的字符串。如果您使用的是外部库或SDK,它们可能会引用需要目的字符串的API。虽然您的应用可能不使用这些API,但仍然需要使用目的字符串。您可以联系库或SDK的开发人员,请求他们发布不包含API的代码版本。了解更多信息(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
最好的问候,
App Store团队
为了修复这个错误,我在Xcode 10.2.1中添加了Info.plist,如下所示:
但什么都没发生应用程序商店总是给我发这个错误。
如何修复此错误?
3条答案
按热度按时间gojuced71#
对于NSCameraUsageDescription,在“值”列中添加使用相机的确切目的。例如,
ar5n3qh52#
人们说他们被拒绝了即使他们没有要求进入摄像头。你必须知道苹果会用他们的静态分析工具扫描你的代码。即使你有一个功能标志的保护,应用商店的审查过程仍然会拒绝你的应用。因为他们不知道你什么时候会打开那个功能标志。
此外,如果第三方服务在其代码中包含相机访问相关代码,则您可能会遇到此问题。同样,即使你没有点击(第三方框架的)那一行,你也需要那个键。
但后来我遇到了问题,我们已经添加了plist,但后来应用商店审查团队无法测试它,因为该功能受到一个功能标志的保护。因为他们无法测试它,所以他们没有批准它
\()/
最后但并非最不重要的是,如果你真的需要在你的plist中使用这个键,那么确保它的推理足够通用,以涵盖所有情况。如果您需要访问相机来拍摄个人资料图片和扫描二维码,那么鉴于您的应用可以在 * 个人资料图片步骤或扫描PR码时请求访问相机,那么您在plist中的描述应该涵盖这两个功能,而不仅仅是其中一个。如果你说“需要访问以拍摄个人资料照片”,那么如果用户首先点击QR流,但看到你请求访问以拍摄个人资料照片,你就有可能被拒绝。因此,你应该说“需要访问采取个人资料照片和二维码扫描新设备”
tl;dr确定您请求访问的应用流程中的哪个位置。如果你需要它,然后在你的plist中添加它的键/值。如果你不需要它,就把这行注解掉。你不应该只是为了通过应用商店的评论而添加plist。它 * 可以 * 失败,但它也可以成功,而在未来的版本中它将失败。
2mbi3lxu3#
在新版IOS中,访问摄像头的应用程序会触发一个对话框,提示用户允许或拒绝该应用程序的权限。
这就是为什么你需要解释为什么应用程序访问输入设备(相机,麦克风等)。
为此,您需要通过在dict标记中添加键和字符串描述来编辑项目
Runner/info.plist
文件。或者您可以通过在
xcode
中打开您的产品来添加它,如下图所示,以了解更多详细信息。