10当我升级到Xcode8后,启动我的相机项目,直接crash,输出的日志如下:'2016-07-08 16:41:11.268943 project-name[362:56625] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles2016-07-08 16:41:11.272276 project-name[362:56625] [MC] Reading from public effective user settings.2016-07-08 16:41:11.356590 project-name[362:56700] [access]'使用Xcode7启动,却没有问题,实际原因是上面的输出日志中最后一行就是告诉你访问了隐私权限(aceess private),需要配置权限相机权限:Privacy - Camera Usage Description允许此权限才能使用相机功能因为我的项目还需要录制视频,并且想要保存图片,
所以需要增加相册:Privacy - Photo Library Usage Description允许此权限才能保存图片
要录制视频的一定要加上(麦克风:Privacy - Microphone Usage Description)不然会崩的
麦克风:Privacy - Microphone Usage Description允许此权限才能录音在info.plist里增加一项,key从上面的三项任一项拷贝,然后运行后会出现授权的警示框,同意后就没有问题了。
在还没有解决问题之前,即在未增加上面key之前,查看‘设置-隐私-相机’、‘设置-隐私-照片’、‘设置-隐私-麦克风’,即使安装了应用,也无法在‘设置-隐私-xx’里看到有这个应用出现。
由此表明,Xcode8即IOS10的权限相关改为了在info.plist显示的设置,原来是在代码中调用到相关模块,系统自己为这个项目记录权限,现在需要项目本身显示的要求权限,然后系统读取。当增加了key之后,运行应用即可以在‘设置-隐私-xx’里看到这个应用下面是相关链接,
和根据Privacy - Camera Usage Description搜索到的相关问题解答
1.https://forums.developer.apple.com/message/152229#1522292.iOS10
权限崩溃问题3.Information Property List Key Reference
ios 10 中权限适配
升级到iOS10之后,需要设置权限的有:
<!-- 相册 -->
<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>
---------------------
作者:haoxuhong
来源:CSDN
原文:https://blog.csdn.net/haoxuhong/article/details/82107301
版权声明:本文为博主原创文章,转载请附上博文链接!