当我升级到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.configurationprofiles

2016-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] <private>

'

使用Xcode7启动,却没有问题,实际原因是上面的输出日志中最后一行就是

告诉你访问了隐私权限(aceess private),需要配置权限

相机权限:

Key:Privacy - Camera Usage Description
Value:允许此权限才能使用相机功能

因为我的项目还需要录制视频,并且想要保存图片,所以需要增加

相册:

Key:Privacy - Photo Library Usage Description
Value:允许此权限才能保存图片

麦克风:

Key:Privacy - Microphone Usage Description
Value:允许此权限才能录音

在info.plist里增加一项,key从上面的三项任一项拷贝,然后运行后会出现授权的警示框,同意后就没有问题了。

如图:



在还没有解决问题之前,即在未增加上面key之前,查看‘设置-隐私-相机’、‘设置-隐私-照片’、‘设置-隐私-麦克风’,

即使安装了应用,也无法在‘设置-隐私-xx’里看到有这个应用出现由此表明,Xcode8即IOS10的权限相关改为

了在info.plist显示的设置,原来是在代码中调用到相关模块,系统自己为这个项目记录权限,现在需要项目本身

显示的要求权限,然后系统读取。当增加了key之后,运行应用即可以在设置-隐私-xx’里看到这个应用

相关链接

1.https://forums.developer.apple.com/message/152229#152229

2.Information Property List Key Reference


其它权限

位置权限

Key:Privacy - Location Usage Description
Value:允许此权限才能启用:定位功能

Key: Privacy - Location When In Use Usage Description
Value:允许此权限才能在应用运行期间启用:定位功能

Key:Privacy - Location Always Usage Description
Value:允许此权限才能一直启用:定位功能

日历权限

Key:Privacy - Calendars Usage Description
Value:允许此权限才能访问:日历

提醒事项

Key:Privacy - Reminders Usage Description
Value:允许此权限才能访问:提醒事项

运动与健康

Key:Privacy - Motion Usage Description
Value:允许此权限才能访问:运动与健康

Key:Privacy - Health Update Usage Description
Value:允许此权限才能访问:健康更新

Key:Privacy - Health Share Usage Description
Value:允许此权限才能访问:健康数据分享

蓝牙权限

Key:Privacy - Bluetooth Peripheral Usage Description
Value:允许此权限才能访问:蓝牙

媒体资料库

Key:Privacy - Media Library Usage Description
Value:允许此权限才能访问:媒体资料库

如下图





Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐