Ios Cordova Info.plist NSCamerausage描述码缺失
在最近的更改之后,如果你的应用程序试图访问隐私敏感数据,苹果需要特定的密钥。因此,我在我的config.xml中添加了nsCameraSageDescription密钥,如下所示:Ios Cordova Info.plist NSCamerausage描述码缺失,ios,cordova,hybrid-mobile-app,Ios,Cordova,Hybrid Mobile App,在最近的更改之后,如果你的应用程序试图访问隐私敏感数据,苹果需要特定的密钥。因此,我在我的config.xml中添加了nsCameraSageDescription密钥,如下所示: <platform name="ios"> <config-file parent="NSCameraUsageDescription" target="*-Info.plist"> <string>We are using a camera to <
<platform name="ios">
<config-file parent="NSCameraUsageDescription" target="*-Info.plist">
<string>We are using a camera to </string>
</config-file>
</platform>
<string>your usage message</string>
</edit-config>
生成的ipa在info.plist中显然没有正确的信息。感觉好像我错过了什么
问题1:
我需要在config.xml中输入什么来解决NSCamerauseComiption问题?
问题2:
是否可以对此字符串使用本地化
谢谢大家! 新答案:
自Cordova CLI 6.5.0以来,您可以使用config.xml
中的edit config
标记直接写入info.plist
,如下所示:
<platform name="ios">
<config-file parent="NSCameraUsageDescription" target="*-Info.plist">
<string>We are using a camera to </string>
</config-file>
</platform>
<string>your usage message</string>
</edit-config>
您的使用信息
但请确保您使用的是最新版本的插件,否则这些值可能会被插件变量覆盖
对于本地化,您可以使用此插件中的资源文件标记和InfoPlist.strings文件(但您不需要该插件,config.xml支持资源文件标记)
旧答案:
您还不能使用config file
标记从config.xml
写入info.plist
(正在处理)
最新版本的摄像头插件允许您在安装插件时添加NSCameraUsageDescription
cordova plugin添加cordova plugin摄像头——可变摄像头\u用法\u DESCRIPTION=“您的用法信息”
现在无法对该字符串进行本地化以下是我自己的研究结果:
- 是,您可以从config.xml文件修改info.plist
使用配置文件标签,但是必须使用插件
并虔诚地遵循指示
- 然而,可能更好的选择是使用plugin.xml做同样的事情。更多关于它的信息,你可以在这里阅读
- @jcesarmobile提到的另一个选项-当前的摄像头插件可能会像(此解决方案特定于该插件))
- 是的,可以但是需要使用xcode。我不知道如何使用Cordova config.xml或plugin.xml将info.plist文件中的字符串本地化
如果我错了,请纠正我。请直接从config.xml获取更多本地化信息
就个人而言,我不喜欢使用自定义插件来修改info.plist文件。感觉我使用的每一个新插件都让我的应用程序变得越来越脆弱 如果愿意,可以在cordova项目中手动编辑.plist文件。这对我来说很有效,但由于这是一个生成的文件,我确实担心在某个时候我的更改可能会被改写
但我还是要帮忙
.plist文件应位于Cordova项目中/platforms/ios/[Cordova项目名称]/[Cordova项目名称]-Info.plist
中。您还可以在Xcode中打开项目,然后在左侧单击放大镜图标,这样您就可以搜索项目中的文件。如果您在info.plist
中输入,它将返回一个类似以下内容的结果:
INFOPLIST\u文件=[Some]/[Path]/[Cordova项目名称]-Info.plist
此路径应与Cordova项目安装相对应,因此在项目中搜索应可找到正确的文件
我在编辑器中打开了此文件,并在第一个打开的
标记中添加了以下行:
NSCameraUsageDescription
使用摄像头允许两个客户端之间进行视频聊天
我能够提交并显示我的构建,并留在itunesconnect中。目前仍在等待应用程序审查
我确实运行了一个cordova prepare ios
,只是为了测试我的更改是否会被改写,而他们没有这样做,所以看起来你应该能够做到这一点,不必担心,但对其他开发人员安装你的应用程序并遇到同样的问题感到厌倦。我只是将更新后的.plist文件复制到我的repo的根目录中,并在自述文件中做了记录
$ 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的内部内容,以查看支持哪种类型的密钥名。转到您的项目>>在那里打开终端
并运行此命令
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"
您可以根据需要不断修改“允许应用程序使用您的相机”和“允许应用程序访问您的照片”的值。首先,在苹果拒绝我的ipa后,这适用于我的Cli-7.1.0
1) 在您的代码中,如果您使用例如cordova插件条码扫描器和cordova插件摄像头以及cordova插件ios摄像头权限所有变量camera\u USAGE\u DESCRIPTION,PHOTOLIBRARY\u USAGE\u DESCRIPTION内部应具有相同的字符串。如果其中一个不同,苹果会拒绝您的ipa,因为phonegap使用默认变量
ej:
2) 添加此代码(请记住在变量中使用相同的字符串,正如我前面提到的):
你的请求
你的请求
你的请求
对于iOS 10/11,您可以使用它作为快捷方式
提供有关如何提供自定义消息的默认值和清晰文档
cordova plugin add cordova-plugin-ios-camera-permissions --save
如果您已经安装了iOS平台,则可能需要删除并重新添加
$ cordova platform rm ios
$ cordova platform add ios
我搜索了很多时间,尝试了很多解决方案,但都没有成功
最后,我在行的Info选项卡中使用Xcode定义了这些数据
Privacy - Camera usage description
这为我节省了很多时间。您是否找到了从config.xml或任何其他cordova插件本地化字符串的方法?谢谢@MathieuG到目前为止,我发现的唯一一种方法是使用xcode内置功能(基本上就是创建不同的info.plist文件)
$ cordova platform rm ios
$ cordova platform add ios
Privacy - Camera usage description