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.xml
的edit-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.xml或plugin.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"
您可以根据需要随时修改“允许应用程序使用您的相机”,“允许应用程序访问您的照片”的值。