最近将xcode升级到8.0版本发现之间分装的一个设置相机 相册 定位权限类不能使用了,在openURL跳转至改app对应系统设置界面时程序发送崩溃:
ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
获取status权限4种模式:
ALAuthorizationStatusNotDetermined =0//用户尚未做出选择这个应用程序的问候
ALAuthorizationStatusRestricted//此应用程序没有被授权访问的照片数据。可能是家长控制权限
ALAuthorizationStatusDenied // 用户已经明确否认了这一照片数据的应用程序访问
ALAuthorizationStatusAuthorized //用户已经授权应用访问照片数据
在xcode 8.0升级之前,第一次安装app的时候,在调用相册的时候,会跳出系统的提示窗,是否允许你app访问相册(写demo的时候遇到的,可能在项目开发过程中由于支持ios版本比较低,系统的提示还存在),当你点击不允许,在此访问相册时,会进入到你设置的权限的status中,一般情况你的status为ALAuthorizationStatusDenied;这个时候你可以进到自定义的弹窗中
这个时候在调整到app对应的相册权限设置中是没有问题的.
第二种情况,相信也是小伙伴们遇到最崩溃的地方,就是app第一次安装后,访问系统相册时,没有给出系统的弹窗提示,程序直接就崩溃了,这是什么原因导致的呢!经过我查阅资料仔细发现好多版本什么iOS 10中OpenURL 不能使用,添加dispatch_after设置延时 等等,调整代码后发现依然崩溃,并没有什么卵用.通过在status位置设置断点,发现status的状态并不是ALAuthorizationStatusRestricted和ALAuthorizationStatusDenied,而是ALAuthorizationStatusNotDetermined(用户尚未做出选择这个应用程序的问候);第一无法进去你自定义的弹窗提示里面;第二返回Yes但是系统根本没有允许你访问相册,强制调整肯定会出现崩溃现象的;而且你会发现在手机手机设置里面根本找不到你的app存在,也无法手动设置权限,哪问题又改怎么解决呢?废话不多说,直接给答案:
找到你的xcode中info.plist文件右击选中Open As ==> Source Code中添加
此时重新访问系统相册,会给出系统的提示弹窗,如果选择不允许,再次点击访问相册时,会进入到你自定义的弹窗中,允许访问再次在访问相册时,直接进入相册,此时问题解决到此.
留下个小问题:进入到系统相册后,当你改变你相册的权限后,你的app此时出现崩溃(说高雅点是重启).此问题经核查无人破解(微信 微博都重启现象),如果有高人请指点一二,若帮您解决类似问题,请点个赞!