ios10中的phonegap应用程序冻结

ios10中的phonegap应用程序冻结,ios,iphone,cordova,Ios,Iphone,Cordova,我有一个phonegap应用程序,它一直正常工作,直到上周五,它停止在apple store中接受,并显示以下消息: 此应用尝试在没有使用说明的情况下访问隐私敏感数据。应用程序的Info.plist必须包含一个NSPhotoLibraryUsageDescription键,该键带有一个字符串值,用于向用户解释应用程序如何使用此数据 此应用尝试在没有使用说明的情况下访问隐私敏感数据。应用程序的Info.plist必须包含一个NSBluetoothPeripheralUsageDescription

我有一个phonegap应用程序,它一直正常工作,直到上周五,它停止在apple store中接受,并显示以下消息:

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

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

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

为了纠正这个问题,经过一些研究,我提出了以下解决方案,在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:*"/>


关于我做错了什么的任何提示?

这可能是由
内容安全策略引起的

尝试在
标记中添加
默认src间隙:

e、 g:


参考: 解决了它

在元标记中,而不是:

script-src 'self' 'unsafe-inline' 'unsafe-eval' *
我补充说:

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

更新之前,应用程序的部署目标是什么?为了构建项目,我使用的目标平台是ios和android,为了在apple store中部署,我使用phoegap网站build.phonegap.com中提供的Ipa文件,并将其与应用程序加载器一起使用。我不确定我是否在回答你的问题…我听从你的建议,但它没有解决问题,在spalsh屏幕后,应用程序保持白色,当它应该转到登录页面时,问题可能发生在本机代码或本地js代码中。如果是本地js问题,请尝试使用Safari检查应用程序并跟踪错误日志
script-src 'self' 'unsafe-inline' 'unsafe-eval' data: *;