iOS10适配之权限Crash问题的完美解决方案
升级 iOS 10 之后目测坑还是挺多的,记录一下吧,看看到时候会不会成为一个系列。
直入正题吧
今天在写 Swift 3 相关的一个项目小小练下手,发现调用相机,崩了。试试看调用相册,又特么崩了。然后看到控制台输出了以下信息:
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.
意思就是说,你需要在 info.plist 文件添加一个 NSPhotoLibraryUsageDescription的 key,然后添加一个描述。
解决方案
1.在项目中找到info.plist文件,右键点击以 Source Code形式打开
2.添加以下键值对,这里以 PhotoLibrary 作为例子
<key>NSPhotoLibraryUsageDescription</key> <string>此 App 需要您的同意才能读取媒体资料库</string>
注意,key 是绝对不能写错的,
而 value 也就是<string></string>你可以随意写
目测所有需要的权限描述都会在 iOS 10 beta里面crash,不用怕,控制台会有输出的,自行添加就 OK,我另外附送几个 key/value 给你们
<key>NSCameraUsageDescription</key> <string>cameraDesciption</string> <key>NSContactsUsageDescription</key> <string>contactsDesciption</string> <key>NSMicrophoneUsageDescription</key> <string>microphoneDesciption</string>
嗯,然后 clean 一下,重新运行。
当然我比较推荐的做法是直接
info.plist 还是用 Property List 的形式,然后点击添加, 就是滑动到最后一个 item 会出现一个小加号
输入 Privacy 可以迅速定位到这一权限系列,找到你需要的权限,修改后面的 value 就可以了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
iOS开发之WKWebViewJavascriptBridge Xcode9中导致crash的解决
前言 本文主要给大家介绍了关于iOS WKWebViewJavascriptBridge Xcode9中导致crash的相关解决办法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. WKWebViewJavascriptBridge 这个第三方还是比较不错的,但是最近Xcode9上,却出现了crash:WKWebViewJavascriptBridge官方github看了大家也都有如此问题,最后终于解决了: 需要在WKWebViewJavascriptBridge类里,如下修改
-
查看iOS Crash logs的方法
当应用在设备中运行发生崩溃,iOS将记录这些错误日志并且创建了崩溃报告(Crash Report).崩溃报告中包含了iOS的版本.日期.异常类型.堆栈跟踪以及其他信息. ① 在Xcode中查看崩溃报告 当应用还在开发过程中发生了崩溃,则直接可以使用Xcode Organizer来查看崩溃报告.按如下操作: 1.打开Organizer: 2.选择"Devices"选项(界面的顶部): 3.选择左侧菜单栏中的device项: 4.选择"Devices"中的"D
-
iOS10适配之权限Crash问题的完美解决方案
升级 iOS 10 之后目测坑还是挺多的,记录一下吧,看看到时候会不会成为一个系列. 直入正题吧 今天在写 Swift 3 相关的一个项目小小练下手,发现调用相机,崩了.试试看调用相册,又特么崩了.然后看到控制台输出了以下信息: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must cont
-
单纯聊一聊iOS10适配
一.工程改动 1. 工程配置 直接使用Xcode8Beta打开工程后,你会发现你的provisonfile配置出了问题,这是由于在Xcode8中对工程配置有了一些小的改动. 在Xcode8工程配置的general选项卡中,使用更详细signing选项替换了原有的team选项. 选中:project -> target -> generalXcode8之前team选项 Xcode8之前provisionfile选项 Xcode8之后变更为signing选项 signing选项展开 2. swif
-
iOS10适配问题及解决方法 新鲜出炉!
随着iOS10发布的临近,大家的App都需要适配iOS10,下面是我总结的一些关于iOS10适配方面的问题,如果有错误,欢迎指出. 1.系统判断方法失效: 在你的项目中,当需要判断系统版本的话,不要使用下面的方法: 复制代码 代码如下: #define isiOS10 ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=10) 它会永远返回NO,substringToIndex:1在iOS 10 会
-
iOS10 适配以及Xcode8配置总结
一.Xcode8 插件你去哪了 以为是和之前一样 Xcode 升级了,只需要更新 Xcode info.plsit 中的 DVTPlugInCompatibilityUUID,结果发现一点用都木有泪奔:苹果解决xcode ghost,把插件屏蔽了,为此也给大伙找到了相关的解决方法,但是不怎么推荐这样做,因为烦的是不能够上传 iTunes content https://github.com/inket/update_xcode_plugins 还有一种方案就是Xcode自带的注释插件! 解决方法
-
iOS10适配(必看)
一.工程改动 1. 工程配置 直接使用Xcode8Beta打开工程后,你会发现你的provisonfile配置出了问题,这是由于在Xcode8中对工程配置有了一些小的改动. 在Xcode8工程配置的general选项卡中,使用更详细signing选项替换了原有的team选项. 选中:project -> target -> general Xcode8之前team选项 Xcode8之前provisionfile选项 Xcode8之后变更为signing选项 2. swift版本 假如你Xcod
-
iOS10适配问题点总结
说在前面 iOS10和xcode8的GM版都放出了下载,我怀着忐忑的心更新了下(怕有适配问题啊!!!),先更新的xcode8,跑了下公司的项目,除了nullable字段有问题其他都还比较顺利,不过项目跑起来,还是有一点小问题,好在不像iOS9更新时变化那么多,然后我又给手机升级了iOS10,跑了个真机,结果一不小心测试到后半夜2点...浪费了一上午玩游戏的好时光.本篇就我碰到的问题一一整理,希望有类似问题的猴们,可以有点参考. 问题点 问题一(nullable) Q:以前是可以nullable的
-
iOS10适配问题收集整理
1.TencentOpenAPI的坑 表现:启动就crash 原因:由于很久没有更新该sdk了,用的版本是2.3.1.后来想着去官网下个最新的吧,不过最新的是3.0的版本,替换原来的sdk后,有些接口和头文件定义的问题,直接编译不过.为了少踩点坑,还是选择了其他项目已经在用的2.8版本.该版本可以直接替换,在iOS10上顺利解决. 2.私有权限申请的坑 表现:Xcode8编译的版本,首次打开相机.相册.获取通讯录.录视频...统统crash 原因:由于iOS10对Security and Pri
-
iOS10 适配-Xcode8问题总结及解决方案
iOS10 适配-Xcode8 问题解决: IOS开发者,系统版本的更新,必定要跟着更新,不然有些功能不知道,开发的时候对可以体验,大打折扣了. 前段时间升级了Xcode8,整体来说对OC的影响不大,但是还是跳一个坑,消耗了不少时间.这里总结下遇到的适配问题. 1.权限问题 Xcode8 访问相机.相册等需要权限的地方崩溃 解决办法: 在使用私有权限时,添加Info.plist文件中添加配置: 下面是各种key,需要哪个添哪个 NSBluetoothPeripheralUsageDescript
-
Xcode8以及iOS10适配等常见问题汇总(整理篇)
随着iOS 10的更新以及Xcdoe 8的更新出现了很多问题,今天小编抽时间把我遇到的坑和大家分享下,一起看看吧. 1.访问权权限问题 iOS 10 开始对访问用户隐私权限更加严格,如果你不设置就会直接崩溃,解决办法都是在info.plist文件添加对应的Key-Value就可以了. PS:对应的value可以自定义填写 2.Xcode 8 运行打印一堆Log的解决办法 只要在Run->Arguments->Environment Variables 添加如下key-value值即可 OS_A
-
iOS10 适配远程推送功能实现代码
iOS10正式版发布之后,网上各种适配XCode8以及iOS10的文章满天飞.但对于iOS10适配远程推送的文章却不多.iOS10对于推送的修改还是非常大的,新增了UserNotifications Framework,今天就结合自己的项目,说一说实际适配的情况. 一.Capabilities中打开Push Notifications 开关 在XCode7中这里的开关不打卡,推送也是可以正常使用的,但是在XCode8中,这里的开关必须要打开,不然会报错: Error Domain=NSCocoa
随机推荐
- js事件源window.event.srcElement兼容性写法(详解)
- js 巧妙去除数组中的重复项
- 又一个PHP实现的冒泡排序算法分享
- 浅析php中json_encode()和json_decode()
- sql2008 hql语句翻译过来的分页语句介绍
- vue组件初学_弹射小球(实例讲解)
- js退弹 IE关闭时弹出广告代码,可以防止屏蔽
- JS实现密码框的显示密码和隐藏密码功能示例
- iOS开发中使app获取本机通讯录的实现代码实例
- 如何学JavaScript?前辈的经验之谈
- ASP.NET使用HttpWebRequest读取远程网页源代码
- Python中shutil模块的学习笔记教程
- Python实现MySQL操作的方法小结【安装,连接,增删改查等】
- MySQL中表复制:create table like 与 create table as select
- 本人ajax留言板的源程序 不错的应用js
- 一段ASP单页显示文件夹下所有图片的代码
- sqlserver 脚本和批处理指令小结
- 浅析mysql交互式连接&非交互式连接
- EasyUI折叠表格层次显示detailview详解及实例
- JS实现的自定义水平滚动字体插件完整实例