iOS 10现在需要用户权限才能访问媒体库、照片、相机和其他类似硬件.解决方案是将他们的密钥添加到info.plist中,并向用户描述我们如何使用他们的数据,

我只能找到几把 keys

NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription

我想知道,如果使用XCode-8 beta版构建,是否还有其他硬件(如iOS 10if you haven't provided 101 with proper keys description your application will crash)的密钥.

推荐答案

[UPDATED privacy keys list to iOS 13 - see below]

您可以在Info.plist文件中指定所有Cocoa Keys项:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

(Xcode: Target -> Info -> Custom iOS Target Properties)

iOS之前已经要求获得访问麦克风、摄像头和媒体库的权限(iOS 6、iOS 7),但如果您不提供请求权限的说明(不能为空),则为since iOS 10 app will crash.

Privacy keys with example description: cheatsheet

Source

Alternatively, you can open 101 as source code: source code

Source

And add privacy keys like this:

<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} always location use</string>

List of all privacy keys: [UPDATED to iOS 13]

NFCReaderUsageDescription
NSAppleMusicUsageDescription
NSBluetoothAlwaysUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSCameraUsageDescription
NSContactsUsageDescription
NSFaceIDUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryAddUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription

更新2019年:

在过go 的几个月里,我的两个应用程序在审查期间是rejected分,因为相机使用说明没有说明我如何处理拍摄的照片.

我不得不将描述从${PRODUCT_NAME} need access to the camera to take a photo改为${PRODUCT_NAME} need access to the camera to update your avatar,尽管应用程序的上下文很明显(用户点击了头像).

似乎苹果现在更加关注隐私使用说明,我们应该详细解释为什么我们要申请许可.

Ios相关问答推荐

如何从Windows PC在iPhone上安装Flutter 应用程序

如何使用Swift以编程方式更改SVG文件中某些元素的 colored颜色

许多文本字段的性能问题

mapView swift 导致警告有网格错误

Swift UI中如何为Text提供内部填充

Flutter iOS 构建失败:DVTCoreDeviceEnabledState_Disabled

使用 JSONDecoder 解码的对象的打印输出有问题

为什么@FetchRequest 在删除时不更新和重绘视图?

转换在 NavigationView 中不起作用

如何避免任何绑定空错误并更好地获取代码

Xcode 6 App Store 提交失败并显示您的帐户已经拥有有效的 iOS 分发证书

如何忽略touch 事件并将它们传递给另一个子视图的 UIControl 对象?

iOS 10 错误:UICollectionView 接收到具有不存在索引路径的单元格的布局属性

在 iOS 上存储身份验证令牌 - NSUserDefaults 与 keys 串?

'无效更新:第 0 节中的无效行数

Xcode 4.2 如何将一个项目包含到另一个项目中?

单击 GoogleSignIn 按钮时应用程序崩溃

文本未包含在 swift UI 中

在 UITableViewController 中使用 UISearchDisplayController 时断言失败

如何找到 UILabel 的实际行数?