首页 文章

我是否需要在我的应用的Info.plist中添加隐私“目的字符串”以允许它在iOS 10上运行?

提问于
浏览
1

一般查询

是否存在针对哪些API方法/属性在iOS 10中需要隐私“目的字符串”的精确文档?

特定查询

我有一个应用程序链接到只访问以下方法/属性的 CoreBluetooth 框架:

CBCentralManager:

  • state

  • - retrieveConnectedPeripheralsWithServices:

CBPeripheral:

  • name

在文档中,我发现了以下模糊的陈述(重点是我的):

iOS 10.0上或之后链接的iOS应用程序必须在其Info.plist文件中包含其需要访问的数据类型的使用说明密钥,否则将崩溃 . 要专门访问蓝牙外设数据,必须包含NSBluetoothPeripheralUsageDescription . [...]当系统提示用户允许使用时,您为此密钥提供的值将显示为警报的一部分 . [...]为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序必须静态声明这样做的意图 . 在应用程序的Info.plist文件中包含NSBluetoothPeripheralUsageDescription键,并为此密钥提供目的字符串 . 如果您的应用尝试访问蓝牙界面而没有相应的用途字符串,则您的应用会退出 . [...]表1-2中描述了需要用户许可的数据和功能 .

(表1.2指出 NSBluetoothPeripheralUsageDescription 需要访问“ Bluetooth peripherals ”)

我的应用程序在调用列出的API时当前不会退出 . 它也不是"prompt the user to allow usage" .

但是,this blog post表明缺少崩溃并不表示不需要用途字符串 .

(尽管我的应用程序不是"linked on or after iOS 10.0"(当前版本已经存在于iOS 10之前的商店中),但当它试图访问相机时,它确实会因为缺少 NSCameraUsageDescription 而崩溃 . )

此外,我阅读上面的文档表明我应该包含 NSBluetoothPeripheralUsageDescription 的条目 .

是否有任何其他我遗漏的文档列出了哪些隐私目的字符串涵盖了哪些实际的API调用?

我是否需要为 Info.plist 添加 NSBluetoothPeripheralUsageDescription 的条目?

如果事实证明不是必需的话,添加这样的条目是否有任何伤害?

1 回答

  • 1

    是的,你肯定需要它,它在pre-ios10中是可选的,但现在你必须明确地将注释添加到info.plist IF you're build with iOS10 中 . 它会崩溃应用程序,但如果您使用pre-ios 10构建它's fine. It' s基于Xcode构建不基于设备版本

    所以基本上,下次更新应用程序时,您需要添加它 .

    顺便说一句,我找不到它的文档,这是我从iOS9转向iOS10时的经验

相关问题