我有一个在iOS手机中运行的Cordova应用程序。我正在尝试将此应用程序的更新发送到App Store,但它被拒绝了。首先它被拒绝了,因为info.plist
包含一个带有密钥NSBluetoothPeripheralUsageDescription
的行,并且此功能从未在我的应用中使用。为了解决这个问题,我从info.plist
中删除了这一行,并且xCode中的链接框架和库中的相应框架(框架CoreBluetooth.framework
和行NSBluetoothPeripheralUsageDescription
由Cordova Diagnostic Plugin添加) ,如下图所示:
但是现在我收到来自iTunes Connect的电子邮件说:
缺少Info.plist密钥 - 此应用尝试访问隐私敏感 没有使用说明的数据。应用程序的Info.plist必须包含 带字符串值的NSBluetoothPeripheralUsageDescription键 向用户解释应用程序如何使用此数据。
但是我从xCode项目中删除了CoreBluetooth.framework
...
我的问题是:我需要从其他地方删除此框架?是否有其他框架能够使用蓝牙导致此问题?
感谢您的帮助。
答案 0 :(得分:3)
打开Info Plist文件并按+符号在项目的info.plist中添加新密钥并添加 NSBluetoothPeripheralUsageDescription 并写入值“解释蓝牙的原因”
下方的屏幕截图答案 1 :(得分:1)
对于您或您链接的任何内容尝试访问的任何内容,这些描述都是必需的。如果未提供使用说明,则在尝试访问内容时会生成错误,因此如果您收到这些错误,您的应用必须请求它们。您应该发现您的应用或其框架需要这些内容的原因,并在您的应用的info.plist中添加适当的使用说明。
或者更理想的情况是,如果您不需要访问权限,请查看是否有办法不请求它(或使用不必要的框架)。
暂时您可以在info.plist中添加以下说明并提交您的应用(如果有紧急应用更新)
<key>NSCalendarsUsageDescription</key>
<string>Explain the reasons for accessing...</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Explain the reasons for accessing...</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Explain the reasons for accessing...</string>
只需打开您的info.plist并相应添加上面的代码。
答案 2 :(得分:0)
尝试在您的plist中添加以下内容。它解决了我的问题。
<config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>YourAppName would like to store a photo.</string>
</config-file>
答案 3 :(得分:0)
似乎您不能使用通用文本字符串,例如:
我们需要访问您的蓝牙连接。
我有这样的事情,被拒绝了。当我有更详细的描述,例如:
我们需要访问您的蓝牙连接才能从您的设备上传数据 崩溃报告的设备。
我被批准了。