简体   繁体   English

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

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

I upload my app in app store successfully.我成功在应用商店上传了我的应用。

App store send me an email like this:应用商店给我发一个 email 像这样:

App Store Connect应用商店连接

Dear Developer,亲爱的开发者,

We identified one or more issues with a recent delivery for your app, "Kupona Online" 1.0.2 (1.2).我们发现您最近交付的应用程序“Kupona Online”1.0.2 (1.2) 存在一个或多个问题。 Please correct the following issues, then upload again.请更正以下问题,然后重新上传。

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. ITMS-90683:Info.plist 中缺少目的字符串 - 您的应用程序代码引用了一个或多个访问敏感用户数据的 API。 The app's Info.plist file should contain a NSCameraUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.应用程序的 Info.plist 文件应包含一个 NSCameraUsageDescription 键和一个面向用户的目的字符串,清楚而完整地解释您的应用程序需要数据的原因。 Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string.从 Spring 2019 开始,所有提交到 App Store 并访问用户数据的应用都必须包含目的字符串。 If you're using external libraries or SDKs, they may reference APIs that require a purpose string.如果您使用的是外部库或 SDK,它们可能会引用需要目的字符串的 API。 While your app might not use these APIs, a purpose string is still required.虽然您的应用可能不使用这些 API,但仍需要使用目的字符串。 You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs.您可以联系库的开发人员或 SDK 并请求他们发布不包含 API 的代码版本。 Learn more ( https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy ).了解更多信息( https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy )。

Best regards,此致,

The App Store Team应用商店团队

To fix this error I put in Info.plist in Xcode 10.2.1 like in this:为了解决这个错误,我将 Info.plist 放入 Xcode 10.2.1 中,如下所示:

图片

but nothing happens.但什么也没发生。 App store send me always this error.应用商店总是向我发送此错误。

How do I fix this error?如何修复此错误?

For NSCameraUsageDescription, Add the exact purpose of using camera in the Value column.对于 NSCameraUsageDescription,在 Value 列中添加使用相机的确切目的。 For example,例如, 在此处输入图片说明

Folks are saying they're getting rejected even though they're not request access to camera.人们说他们被拒绝了,即使他们没有请求访问相机。 You have to know that Apple will scan your code with their static analysis tools.您必须知道 Apple 会使用其静态分析工具扫描您的代码。 And even if you have this protected behind a feature flag, still the app store review process would reject your app.即使你在功能标志后面保护了它,应用商店的审查过程仍然会拒绝你的应用。 Because they don't know when you'll turn that feature flag on.因为他们不知道你什么时候会打开那个功能标志。

Additionally you could get this issue if a third-party service has a camera access related code in their code.此外,如果第三方服务在其代码中包含与相机访问相关的代码,您可能会遇到此问题。 Again even if you don't hit that line (of the 3rd party framework), you'd need that key in.再一次,即使您没有达到(第 3 方框架的)那条线,您也需要输入该键。

But then I've had issues where we've added that plist in, but then the app store review team was never able to test it out because the feature was protected by a feature flag.但是后来我遇到了问题,我们在其中添加了该 plist,但随后应用商店审核团队无法对其进行测试,因为该功能受到功能标志的保护。 And because they couldn't test it, they didn't approve it ¯\\ (ツ) /¯而且因为他们无法测试,所以他们没有批准它¯\\ (ツ) /¯

Last but not least, if you did really need that key in your plist, then make sure its reasoning is generic enough to cover all cases eg If you need access to the camera for both take profile pictures and scanning QR code, then given that your app can request access for the camera at either the profile picture step or at scanning a PR code, then your description in the plist should cover both features, not just one of them.最后但并非最不重要的一点是,如果您确实在 plist 中确实需要该密钥,请确保其推理足够通用以涵盖所有情况,例如,如果您需要访问相机以拍摄个人资料照片和扫描 QR 码,那么鉴于您的应用程序可以要求在的资料图片步骤或在plist中扫描PR的代码,那么你的描述应该涵盖的功能,而不仅仅是其中一个相机访问。 If you say "need access to take profile photos" then there is a chance that you could rejected if user hits the QR flow first but sees you're requesting access to take a profile photo.如果您说“需要获取拍摄个人资料照片的权限”,那么如果用户首先点击 QR 流程但看到您请求获取拍摄个人资料照片的权限,您可能会被拒绝。 Hence you should say "need access to take profile photos and QR code scan for new devices"因此,您应该说“需要访问拍摄个人资料照片和扫描新设备的二维码”

tl;dr identify where in your app flow you're requesting access. tl;dr 确定您在应用流程中请求访问的位置。 If you need it then add its key/value in your plist.如果你需要它,那么在你的 plist 中添加它的键/值。 If you don't need it then comment out that line.如果您不需要它,请注释掉该行。 You shouldn't just add the plist just for the sake of passing an app store review.您不应该仅仅为了通过应用商店审核而添加 plist。 It could fail but it also can happen to succeed, but then in a future release it would succeed...可能会失败,但也可能会成功,但在未来的版本中它会成功......

In the new version of IOS, apps accessing the camera trigger a dialog that will prompt the user to allow or deny permission for the app.在新版本的 IOS 中,访问相机的应用程序会触发一个对话框,提示用户允许或拒绝该应用程序的权限。

That's why you need to explain why the application is accessing the input device (Camera, Microphone, etc).这就是为什么您需要解释应用程序访问输入设备(相机、麦克风等)的原因。

To do this, you need to edit your project Runner/info.plist file by adding the key and string description inside the dict tag.为此,您需要通过在 dict 标记内添加键和字符串描述来编辑您的项目 Runner/info.plist 文件。

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

Or you can add it by opening your product in xcode the image below for more details.或者,您可以通过在xcode中打开您的产品来添加它,更多详细信息如下图所示。

在此处输入图像描述

暂无
暂无

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

相关问题 ITMS-90683:NSCameraUsageDescription键的Info.plist中缺少目的字符串 - ITMS-90683: Missing Purpose String in Info.plist for NSCameraUsageDescription key 错误 ITMS-90683:Info.plist 中缺少目的字符串 - ERROR ITMS-90683: Missing Purpose String in Info.plist ITMS-90683:Info.plist 中缺少目的字符串 - ITMS-90683: Missing Purpose String in Info.plist ITMS-90683:Info.plist NSMicrophoneUsageDescription 中缺少目的字符串,flutter - ITMS-90683: Missing Purpose String in Info.plist NSMicrophoneUsageDescription, flutter Phonegap App Store 提交:ITMS-90683:Info.plist 中缺少目的字符串 - NFCReaderUsageDescription - 未使用插件 - Phonegap App Store Submit: ITMS-90683: Missing Purpose String in Info.plist - NFCReaderUsageDescription - Not Using Plugin 我应该如何处理 ITMS-90683:Info.plist 中缺少目的字符串 - What should I do about ITMS-90683: Missing Purpose String in Info.plist Xocde-错误ITMS-90683 Info.plist文件中缺少目的字符串 - Xocde - ERROR ITMS-90683 Missing Purpose String in Info.plist File 尝试将应用程序上传到 testflight 时出现此错误“ITMS-90683:Info.plist 中缺少目的字符串” - I am getting this error when trying to upload the app to testflight "ITMS-90683: Missing Purpose String in Info.plist" Ios react-native 无法部署到应用商店获取 ITMS-90683:Info.plist 中缺少目的字符串 - Ios react-native cant deploy to app store getting ITMS-90683: Missing Purpose String in Info.plist 错误 App Store Connect:“ITMS-90683:Info.plist 中缺少目的字符串”和“ITMS-90078:缺少推送通知权利”[Flutter] - Error App Store Connect: 'ITMS-90683: Missing Purpose String in Info.plist' & 'ITMS-90078: Missing Push Notification Entitlement' [Flutter]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM