iOS开发------iOS 10 由于权限问题导致崩溃的那些坑

来源:互联网 发布:源码之家easck 编辑:程序博客网 时间:2024/06/05 10:44

使用Xcode8写自己的东西有一段时间了,在使用Xcode8编程时不得不说我特别喜欢改后的默认字体,哈哈,当然默认字体是可以调回去的,只不过默认的字体感觉看起来比以前舒服了,毕竟不会像之前那么”字正腔圆”了。

步入正题吧,不然慢慢的就会成为话唠了。凡事总会有个导火线吧,想记录权限问题的起因: 
今天在继续优化之前写的图片多选小demo的时候无意用Xcode8 Beta3打开了(用过的小伙伴应该知道,点击项目文件的话默认就是用Xcode8来打开的吧),在调用发生了崩溃现象,一开始以为是巧合,但尝试了第二次之后,似乎意识到确实出了问题,从而关注控制台(为什么之前没有看,是因为Beta版不管有没有出现错误都会打印一堆的东西,索性就不看了),这个时候就注意到了这句Xcode给我们的忠告:

[access] 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.
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

不难翻译,大体意思就是这个App缺少一个获取私有(敏感)数据的权限描述,需要我们在info.plist文件中必须含有一个名字叫做NSPhotoLibraryUsageDescription的值来解释为什么应用需要使用这个数据,没错,获取相册资源的键值就是NSPhotoLibraryUsageDescription 

感觉它”友好”的提示之后,就去plist文件中添加了下面的键值: 


这个时候再点击获取图片资源,就弹出了一个获取权限的问候,不会发生崩溃了:


通过类似事情,说明iOS10对用户的隐私又做了进一步加强,就好像当初iOS8对定位隐私进行加强一样,作为开发者的我们貌似也是应该时刻保持这种对新知识警觉性的。 

除了相册的权限,iOS10之后如下的权限请求也是需要我们填写请求描述的,在这里也给大家提醒一下:

Privacy - Microphone Usage Description //麦克风权限Privacy - Contacts Usage Description   //通讯录权限Privacy - Camera Usage Description     //摄像头权限Privacy - NSSiriUsageDescription       //Siri的权限Privacy - Bluetooth Peripheral Usage Description //蓝牙Privacy - Reminders Usage Description  //提醒事项Privacy - Motion Usage Description     //运动与健康Privacy - Media Libaray Usage Description //媒体资源库Privacy - Calendars Usage Description  //日历原文链接http://blog.csdn.net/runintolove/article/details/52087623
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
0 0