Ios Cordova Info.plist NSCamerausage描述码缺失

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 <

在最近的更改之后,如果你的应用程序试图访问隐私敏感数据,苹果需要特定的密钥。因此,我在我的config.xml中添加了nsCameraSageDescription密钥,如下所示:

<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