cordovaInfo.plist NSCameraUsageDescription密钥丢失

如果您的应用尝试访问隐私敏感数据,苹果需要特定密钥进行最近的更改。 所以我添加NSCameraUsageDescription密钥在我的config.xml如下所示:

<platform name="ios"> <config-file parent="NSCameraUsageDescription" target="*-Info.plist"> <string>We are using a camera to </string> </config-file> </platform> 

然后

 cordova build ios --release --device 

在info.plist中产生显然没有正确信息的ipa。 感觉就像我失去了一些东西。

问题1:我需要在config.xml中解决NSCameraUsageDescription问题? 问题2:是否可以使用本地化string?

谢谢!

新答案:

由于Cordova CLI 6.5.0,您可以直接使用config.xmledit-config标签在info.plist编写,如下所示:

<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge"> <string>your usage message</string> </edit-config>但是确保你使用的是最新版本的插件或值可能会被插件variables覆盖。

老解答:

你不能在config.xml config-file使用config-file标签写入info.plist (它正在工作)

相机插件的最新版本允许您在安装插件时添加NSCameraUsageDescription

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

现在不可能本地化这个string

这是我自己研究的结果:

    • 是的,您可以使用config-file标签config.xml文件中修改info.plist但是您必须使用该插件(cordova自定义configuration),并按照说明进行操作。
    • 不过,更好的select是使用plugin.xml来做同样的事情。 更多关于它你可以在这里阅读(从plugin.xml修改信息plist)
    • 另一个选项就像@jcesarmobile提到的那样 – 当前的相机插件可以像cordova插件相机一样支持它( 这个解决scheme是针对插件的
    • 是的,可以在info.plist文件中本地化一个string, 但是它需要使用xcode。 我不知道如何使用Cordova config.xmlplugin.xml本地化info.plist文件中的string

请纠正我,如果我错了。 更多的信息,直接从config.xml本地化表示赞赏。

就个人而言,我不喜欢使用自定义插件来修改info.plist文件的想法。 感觉就像我使用的每个新插件都让我的应用程序变得越来越脆弱。 🙂

这将解决您的问题(如果您使用条形码扫描器插件)

如果您愿意,您可以在cordova项目中手动编辑.plist文件。 这工作对我来说,但因为这是一个生成的文件,我担心在某些时候我的更改可能会被写入。

但是帮助!

.plist文件应位于/platforms/ios/[Cordova Project Name]/[Cordova Project Name]-Info.plist 。 您也可以在Xcode中打开项目,并在左侧单击放大镜图标,这将允许您在项目中search文件。 如果你inputinfo.plist它应该返回一个结果,显示如下:

INFOPLIST_FILE = [Some]/[Path]/[Cordova Project Name]-Info.plist

这个path应该是相对于你的Cordova项目安装,所以在你的项目中search应该引导你到正确的文件。

我在我的编辑器中打开了这个文件,并在第一个开始的<dict>标签中添加了以下几行:

<key>NSCameraUsageDescription</key> <string>Uses camera to allow video chatting between two clients</string>

我能够提交,并让我的构build显示并保持 itunesconnect。 目前还在等待应用程序审查

我做了一个cordova prepare ios只是为了testing我的变化是否会得到结束,他们没有写,所以看起来你应该能够做到这一点,而不是担心它,但是厌倦了其他开发人员安装您的应用程序,并运行到同样的问题。 我只是复制我的更新.plist文件到我的回购的根,并在自述文件中记下它。

 $ cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION="this app will use your camera" --variable PHOTOLIBRARY_USAGE_DESCRIPTION="this app will access to your photo library" 

您需要阅读./plugins/plugin-what-ever/plugin.xml的内部来查看支持哪种键名称。

去你的项目>>在那里打开terminal

并运行这个命令

 cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION="Allow the app to use your camera" --variable PHOTOLIBRARY_USAGE_DESCRIPTION="Allow the app to access your photos" 

在这里输入图像说明

您可以根据需要随时修改“允许应用程序使用您的相机”,“允许应用程序访问您的照片”的值。