ios10

时间:2016-12-14 11:16:31

标签: ios iphone cordova

我有一个 phonegap 应用程序,它在上周五之前正常工作,当时它在苹果商店接受以下消息:

  

此应用尝试在没有使用说明的情况下访问隐私敏感数据。该应用的Info.plist必须包含 NSPhotoLibraryUsageDescription 键,其中包含一个字符串值,向用户解释应用如何使用此数据。

     

此应用尝试在没有使用说明的情况下访问隐私敏感数据。该应用的Info.plist必须包含 NSBluetoothPeripheralUsageDescription 键,其中包含一个字符串值,向用户解释应用如何使用此数据。

     

此应用尝试在没有使用说明的情况下访问隐私敏感数据。该应用的Info.plist必须包含 NSMicrophoneUsageDescription 键,其中包含一个字符串值,向用户解释应用如何使用此数据。

为了纠正这个问题,经过一些研究,我得出以下解决方案,在我的config.xml文件中添加一些cordova插件:

<plugin name="cordova-plugin-media-capture" source="npm" spec="1.4.0">
    <variable name="MICROPHONE_USAGE_DESCRIPTION" value="App would like to access your microphone." />
    <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>
<plugin name="cordova-plugin-ios-ble-permissions" source="npm" spec="*">
    <variable name="BLUETOOTH_USAGE_DESCRIPTION" value="App would like to access your bluetooth." />
</plugin>

这解决了苹果商店中的问题,我确认Info.plist文件中包含所有这些变量。

但现在应用程序冻结/崩溃,仅在iOs10设备中。

我正在寻求一些指导/帮助来确定可能是这个问题的来源。

提前谢谢大家。

编辑:

Finnaly能够远程调试应用程序并找出一些错误:

  

[错误]拒绝加载数据:text / javascript; charset = utf - (...) - app-shell.html-170.js%0A因为它没有出现在内容的script-src指令中安全政策

我当前的元标记具有以下值:

<meta http-equiv="Content-Security-Policy" content="default-src gap://ready file://* *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *; img-src 'self' data: blob: *; media-src 'self' mediastream: blob:; connect-src * blob:">

和白名单配置:

<plugin name="cordova-plugin-whitelist" spec="1.3.1"/>
<access origin="*"/>
<allow-navigation href="*"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>

我做错了什么小费?

2 个答案:

答案 0 :(得分:0)

可能是由Content-Security-Policy引起的。

尝试在default-src gap:代码中添加<meta>

e.g:

<head>
  <meta http-equiv="Content-Security-Policy" content="default-src * 'self' gap: wss: ws:; font-src * data:; img-src * data:; style-src 'self' https: 'unsafe-inline'; script-src 'self' https: 'unsafe-inline' 'unsafe-eval'">
</head>

REF: "No Content-Security-Policy meta tag found." error in my phonegap application

答案 1 :(得分:0)

解决了!

在元标记中而不是:

script-src 'self' 'unsafe-inline' 'unsafe-eval' *

我补充说:

script-src 'self' 'unsafe-inline' 'unsafe-eval' data: *;