问题出现
今天在IOS10上使用app是在拍照功能Crash、访问相册也Crash,IOS9上是正常的。连机调试发现报错如下:
This app has crashed because it attempted to access privacy-sensitive data without a usage description.The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
崩溃原因
上面字面意思是指APP试图访问安全隐私数据,但是又没有相应的描述,在info.plist里包含一个键值为NSPhotoLibraryUsageDescription 及对应的描述来解释如何使用这些数据。
查询资料发现是从iOS10,苹果加强了对隐私数据的保护,要对隐私数据权限做一个适配,iOS10调用相机,访问通讯录,访问相册等都要在info.plist中加入权限访问描述,不然之前你们的项目涉及到这些权限的地方就会直接crash掉。
解决办法
只需要在info.plist添加NSPhotoLibraryUsageDescription的key, value自己随意填写就可以,这里列举出对应的key(Source Code模式下):
<key>NSPhotoLibraryUsageDescriptionApp</Key><value>程序需要访问相册,请授权</value>
对应还有其他类型隐私类型- 隐私数据对应key值
通讯录NSContactsUsageDescription
相册NSPhotoLibraryUsageDescription
相机NSCameraUsageDescription
麦克风NSMicrophoneUsageDescription
位置NSLocationUsageDescription
在使用期间访问位置NSLocationWhenInUseUsageDescription
始终访问位置NSLocationAlwaysUsageDescription
日历NSCalendarsUsageDescription
提醒事项NSRemindersUsageDescription
运动与健身NSMotionUsageDescription
健康更新NSHealthUpdateUsageDescription
健康分享NSHealthShareUsageDescription
蓝牙NSBluetoothPeripheralUsageDescription
媒体资料库NSAppleMusicUsageDescription