如何解决“缺少 Info.plist 键... NSPhotoLibraryUsageDescription”问题

12
我使用Application Loader上传了.ipa文件,但在iTunes Connect中没有找到构建版本,同时我收到Apple Support的消息:“我们发现您最近提交的“Update HF”存在一个或多个问题。为了处理您的交付,必须纠正以下问题: 缺少Info.plist关键字 - 该应用程序尝试访问具有隐私敏感数据的信息,而没有使用说明。应用程序的Info.plist必须包含一个NSPhotoLibraryUsageDescription关键字,其中包含一个字符串值,解释应用程序如何使用此数据。”
我将以下代码添加到config.xml文件,但仍然遇到相同的错误:

请展示您所做的编辑——目前在您的问题中没有显示任何内容。 - Ali Beadle
我不太确定你所说的config.xml是什么意思,但Xcode或iTunesConnect没有查看这样的文件。请参考@Rahul的答案,在您的info.plistAppName-Info.plist中添加它。 - Ramon
人们认为你在谈论Xcode,而不是Cordova。我目前也在寻找答案。你最终解决了这个问题吗? - Lydon
您可以参考这个问题:https://dev59.com/GlkT5IYBdhLWcg3wf_tN - Mr.Thanks
您可以参考这个问题的链接:https://dev59.com/GlkT5IYBdhLWcg3wf_tN - Mr.Thanks
5个回答

22

输入图像描述您可以在您的plist文件中添加以下行。

<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) uses photos</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) uses photos</string>

3
也许我有点傻,但你只是放了一张截图,并没有解释在哪里找到你所截的那个东西。你正在编辑哪个文件?我该在哪里找到它? - Kae Verens
@KaeVerens 这些数据在INFO选项卡中。 - Broda Noel
请注意,这样的一般性说明将不再能够通过应用商店的审批。您必须实际描述应用程序获取相机或照片访问权限的原因(例如,选择用户配置文件图片)。 - O'Rooney

17

编辑: 所有核心插件已更新,不再使用变量。 要设置用法说明,请在config.xml中使用edit-config标记,如下所示:

<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
    <string>need camera access to take pictures</string>
</edit-config>

请查看iOS Quirks部分。

旧答案: 使用cordova plugin rm cordova-plugin-camera命令删除cordova-plugin-camera插件。

然后再使用以下命令重新安装:

cordova plugin add cordova-plugin-camera --variable PHOTOLIBRARY_USAGE_DESCRIPTION="your usage message"

2
@Irvin,这个答案是正确的。我会在相机插件的文档中添加此URL https://github.com/apache/cordova-plugin-camera#ios-quirks,它还有另一个参数CAMERA_USAGE_DESCRIPTION。 - rubens21
这对我的pohnegap 7.0.1项目有效,而其他解决方案则无效。 - Piero Alberto

2
在我的情况下,App Store Connect一直提示关键字丢失,尽管它肯定在那里。在多次查看Info.plist后,我终于注意到NSPhotoLibraryUsageDescription关键字末尾有一个额外的空格,显然这会阻止上传过程找到该关键字。

这是问题和解决方案的截图:


0

我正在使用VS TACO,这是我最终解决此问题的方法。编辑\plugins\fetch.json文件,将“cordova-plugin-camera”添加到“variables”部分:

"cordova-plugin-camera": {
    "source": {
        "type": "registry",
        "id": "cordova-plugin-camera@~2.4.1"
    },
    "is_top_level": true,
    "variables": {
        "CAMERA_USAGE_DESCRIPTION": "your description text here",
        "PHOTOLIBRARY_USAGE_DESCRIPTION": "your description text here"
    }
}

0

我遇到了同样的问题。尝试在你的config.xml中使用以下代码:

<gap:config-file platform="ios" parent="NSPhotoLibraryUsageDescription">

这可能对你来说有点晚了,但希望对未来的人有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接