Ionic和iOS 10版本中的使用说明问题

时间:2016-10-11 15:16:08

标签: ios cordova ionic-framework ios10

我的iOS离子应用程序运行良好,直到今天我想要进行新的构建。

这是Apple返回的内容:

  

亲爱的开发人员,

     

我们发现您最近交付的一个或多个问题   “APPNAME”。要处理您的交货,请执行以下操作   问题必须纠正:

     

此应用尝试在不使用的情况下访问隐私敏感数据   描述。应用程序的Info.plist必须包含   NSPhotoLibraryUsageDescription键,其字符串值解释为   用户应用程序如何使用此数据。

     

此应用尝试在不使用的情况下访问隐私敏感数据   描述。应用程序的Info.plist必须包含   NSCameraUsageDescription键,用字符串值解释   用户应用程序如何使用此数据。

     

虽然您不需要修复以下问题,但我们希望如此   让你意识到它们:

     

缺少推送通知权利 - 您的应用包含适用于的API   Apple的推送通知服务,但是aps-environment权利   应用程序的签名中缺少。要解决此问题,请确保您的   在Provisioning Portal中为推送通知启用了App ID。   然后,使用分发配置文件对您的应用进行签名   包括aps-environment权利。这将创建正确的   签名,您可以重新提交您的应用程序。请参阅“供应和配置”   开发“在本地和推送通知编程指南中   更多信息。如果您的应用不使用Apple推送通知   服务,不需要采取任何行动。您可以从将来删除API   提交以停止此警告。如果您使用第三方框架,   您可能需要联系开发人员以获取有关删除的信息   API。

这是我的依赖:

  • "ngstorage": "~0.3.10",
  • "ion-image-lazy-load": "*",
  • "ngCordova": "~0.1.24-alpha",

我在ngCordova中使用条形码扫描仪。所以我这样做了: $ cordova plugin rm phonegap-plugin-barcodescanner $ cordova plugin add phonegap-plugin-barcodescanner --variable CAMERA_USAGE_DESCRIPTION="Scan QR-Codes" --save

config.xml现在位于底部:

 <plugin name="cordova-plugin-camera" spec="~1.2.0">
        <variable name="CAMERA_USAGE_DESCRIPTION" value="description" />
        <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="description" />
    </plugin>
    <plugin name="phonegap-plugin-barcodescanner" spec="https://github.com/phonegap/phonegap-plugin-barcodescanner.git">
        <variable name="CAMERA_USAGE_DESCRIPTION" value="Scan QR-Codes" />
    </plugin>

但我仍然收到来自Apple的同样的电子邮件,我的应用程序有一个或多个问题..

6 个答案:

答案 0 :(得分:26)

尽管现在几乎所有Cordova插件都已更新,以支持用户敏感的使用说明。例如,将条形码插件版本更新为最新版本(从 2016年11月7日更新),其中添加了对使用说明的支持:

<plugin name="phonegap-plugin-barcodescanner" spec="~6.0.3">

但如果您还没有找到支持它的插件,并且您需要在*-Info.plist中设置说明,请您需要停止

不建议修改Cordova应用程序的*-Info.plist,因为这将要求您保存在构建过程后可能会被覆盖的更改。因此,作为干净的替代方案,您应该使用cordova-custom-config

cordova plugin add cordova-custom-config --save
  

我为什么要使用它?

     

虽然可以通过Cordova / Phonegap设置一些平台首选项   config.xml,很多(特别是与较新的平台版本相关的)   不能。一种解决方案是手动编辑配置文件   平台/目录,但这是不可维护的   多个开发机器或后续的CI环境   构建操作可能会覆盖您的更改。

     

这个插件试图通过允许额外的来解决这个差距   准备操作后要设置的特定于平台的首选项   已经完成,允许Cordova设置的偏好   被覆盖或其他未指定的首选项。自从   自定义首选项输入到config.xml中,它们可以是   致力于版本控制,因此应用于多个版本   开发机器,CI环境,以及在构建之间维护   或者甚至删除并重新添加平台。

现在将以下内容添加到config.xml块下的<platform name="ios">文件中:

<custom-config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
    <string>This app needs access to your Photo Library to include a screenshot with feedback foo.</string>
</custom-config-file>
<custom-config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
    <string>Allow to scan member's pass</string>
</custom-config-file>

这会自动添加*-Info.plist

中的内容

更新1(2018年2月23日)

如果您使用的是cordova-custom-config插件版本&lt; 5然后将custom-config-file标记替换为config-file

https://github.com/dpa99c/cordova-custom-config#changes-in-cordova-custom-config5

更新2(2019年1月19日)

请参阅 Cordova CLI&gt; = 6

的答案

https://stackoverflow.com/a/38013943/2405040

答案 1 :(得分:1)

您必须将NSCameraUsageDescription*.plist添加到xcode中的{{1}};

  

NSPhotoLibraryUsageDescription =隐私 - 照片库使用说明   NSCameraUsageDescription =隐私 - 相机使用说明

然后在该值中添加对这些隐私设置的描述。

希望有所帮助

答案 2 :(得分:1)

我正在使用phonegap插件org.apache.cordova.camera和100%有效的解决方案:

您所要做的就是将值放在config.xml文件中并使用phonegap进行构建。

我的config.xml:

<plugin name="org.apache.cordova.camera">
      <variable name="CAMERA_USAGE_DESCRIPTION" value="App would like to access the camera." />
      <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="App would like to access the library." />
  </plugin>

答案 3 :(得分:0)

找到解决方案:$ cordova plugin list并重新安装所有插件并阅读有关如何安装NSPhotoLibraryUsageDescription等文档的文档。

答案 4 :(得分:0)

您必须将密钥NSPhotoLibraryUsageDescription添加到Info.plist(在Xcode中),并且该值必须是用户允许摄像头使用的原因(显示在请求摄像头确认对话框中)

答案 5 :(得分:-1)

在config.xml文件中添加以下内容,它可以正常工作。

<gap:plugin name="cordova-plugin-media-capture" source="npm">
    <param name="CAMERA_USAGE_DESCRIPTION" value="We'd like to access your camera to let you take a photo"/>
    <param name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="We'd like to access your photo library to let you pick a photo"/>
    <param name="MICROPHONE_USAGE_DESCRIPTION" value="We'd like to access your microphone to let you record an audio"/>
</gap:plugin>

以下是PhoneGap Build的完整config.xml文件。 https://github.com/moodlehq/moodlemobile-phonegapbuild/blob/master/config.xml