iOS 10 开发之权限Crash 相机相册等权限的使用、检测并引导用户开启权限

升级 iOS 10 之后坑还是挺多的,以前正常使用的权限, 现在会出现crash问题

调用相机和相册的时候如果没有提示用户开启权限, 就会出现闪退

下面是调用相册时候, 没有提醒开启权限, crash的控制台输出信息:

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.

这个程序已经崩溃,因为它试图访问隐私数据没有使用说明。应用程序的信息。plist必须包含一个NSPhotoLibraryUsageDescription关键字符串值向用户解释应用程序如何使用这些数据

大意就是说, 程序崩溃的是因为访问隐私数据没有进行说明, 你需要在 info.plist 文件添加一个 NSPhotoLibraryUsageDescription的 key,然后添加一个描述。

解决方案
1.在项目中找到info.plist文件
2.添加以下键值对

<key>NSPhotoLibraryUsageDescription</key>
<string>此 App 需要您的同意才能读取媒体资料</string>

注意,key 是绝对不能写错的

而 value 也就是<string></string>你可以随意写
目测所有需要的权限描述都会在 iOS 10 beta里面crash,不用怕,控制台会有输出的,自行添加就 OK,下面是几个常用的key/value

    <!-- 相册 -->   
    <key>NSPhotoLibraryUsageDescription</key>   
    <string>App需要您的同意,才能访问相册</string>   
    <!-- 相机 -->   
    <key>NSCameraUsageDescription</key>   
    <string>App需要您的同意,才能访问相机</string>   
    <!-- 麦克风 -->   
    <key>NSMicrophoneUsageDescription</key>   
    <string>App需要您的同意,才能访问麦克风</string>   
    <!-- 位置 -->   
    <key>NSLocationUsageDescription</key>   
    <string>App需要您的同意,才能访问位置</string>   
    <!-- 在使用期间访问位置 -->   
    <key>NSLocationWhenInUseUsageDescription</key>   
    <string>App需要您的同意,才能在使用期间访问位置</string>   
    <!-- 始终访问位置 -->   
    <key>NSLocationAlwaysUsageDescription</key>   
    <string>App需要您的同意,才能始终访问位置</string>   
    <!-- 日历 -->   
    <key>NSCalendarsUsageDescription</key>   
    <string>App需要您的同意,才能访问日历</string>   
    <!-- 提醒事项 -->   
    <key>NSRemindersUsageDescription</key>   
    <string>App需要您的同意,才能访问提醒事项</string>   
    <!-- 运动与健身 -->   
    <key>NSMotionUsageDescription</key> <string>App需要您的同意,才能访问运动与健身</string>   
    <!-- 健康更新 -->   
    <key>NSHealthUpdateUsageDescription</key>   
    <string>App需要您的同意,才能访问健康更新 </string>   
    <!-- 健康分享 -->   
    <key>NSHealthShareUsageDescription</key>   
    <string>App需要您的同意,才能访问健康分享</string>   
    <!-- 蓝牙 -->   
    <key>NSBluetoothPeripheralUsageDescription</key>   
    <string>App需要您的同意,才能访问蓝牙</string>   
    <!-- 媒体资料库 -->   
    <key>NSAppleMusicUsageDescription</key>  <string>App需要您的同意,才能访问媒体资料库</string>  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值