如何解决“缺少Info.plist密钥... NSPhotoLibraryUsageDescription”

时间:2017-01-12 11:24:10

标签: ios cordova

我使用应用程序加载程序完全上传我的.ipa文件,但我没有找到内置的Itunes Connect,我也从苹果支持部门收到此消息:“我们发现了您最近交付的”更新HF“的一个或多个问题。要处理您的交货,必须纠正以下问题: 缺少Info.plist密钥 - 此应用程序尝试在没有使用说明的情况下访问隐私敏感数据。应用程序的Info.plist必须包含一个NSPhotoLibraryUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。 “

我将以下代码添加到config.xml文件中,但我仍然有相同的错误:

                   

5 个答案:

答案 0 :(得分:20)

enter image description here您可以在plist中添加以下行。

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

答案 1 :(得分:17)

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

<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 :(得分:1)

在我的情况下,App Store Connect一直在说该密钥确实存在,但丢失了。在多次查看Info.plist之后,我终于注意到 NSPhotoLibraryUsageDescription 键在键的末尾有一个额外的空间,显然,这阻止了上传过程看到该键。

 Here's a screenshot of the problem and solution:

答案 3 :(得分:0)

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

"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"
    }
}

答案 4 :(得分:0)

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

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

这对您来说可能是一个迟到的回复,但希望这对以后的人有用。