文档章节

适配iOS10 的相关权限设置

豆花饭烧土豆
 豆花饭烧土豆
发布于 2016/11/11 02:43
字数 919
阅读 27
收藏 0

参考一:

最近升级了Xcode8.0,真是很多坑啊,填完一个来另外一个,今天又遇到了一个,用Xcode8.0上传项目时被驳回说是info.plist里面没有设置NSPhotoLibraryUsageDescription、NSCameraUsageDescription、NSContactsUsageDescription、NSMicrophoneUsageDescription等字段,之前这些都是预设的不用加,现在强制了,真是郁闷,下面贴上解决方案

被驳回的原因:

This app attempts 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.

This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

大概意思就是得在plist里面必须加上NSPhotoLibraryUsageDescription和NSCameraUsageDescription的键值对才行,之前都是默认的,现在必须加,要不不让通过,真是坑啊~~具体配置如下图:

这里写图片描述

1-2.jpg

大概统计了一下需要加的一些字段列在下面:

  • NSContactsUsageDescription -> 通讯录

  • NSMicrophoneUsageDescription -> 麦克风

  • NSPhotoLibraryUsageDescription -> 相册

  • NSCameraUsageDescription -> 相机

  • NSLocationAlwaysUsageDescription -> 地理位置

  • NSLocationWhenInUseUsageDescription -> 地理位置

  • Privacy - Bluetooth Peripheral Usage Description -> 蓝牙权限

  • Privacy - Speech Recognition Usage Description -> 语音转文字权限

  • Privacy - Calendars Usage Description -> 日历权限

  • Privacy - Contacts Usage Description -> 通讯录权限

大概就是以上的一些字段,写一篇博客总结一下,方便以后用到的时候能找到,如果大家有补充的可以告诉我一下,谢谢大家的阅读

参考二

解决办法(fix method):
info.plist —Source Code中添加
UsageDescription相关的key, 描述字符串自己随意填写就可以,但是一定要填写,不然会引发包无效的问题,导致上传打包后构建版本一直不显示

<!-- 相册 --> 
<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>

iOS 10 开始对隐私权限更加严格, 如需使用隐私权限需要在工程的info.plist文件中声明,如果不声明程序在调用隐私权限(如相机)时应用程序会崩溃
离线打包用户需要手动添加权限到打包工程的info.plist文件中

key可从以下表中获取,value为弹框提示文字用户可随意添加,类型String

权限名称 Key值
通讯录 NSContactsUsageDescription
麦克风 NSMicrophoneUsageDescription
相册 NSPhotoLibraryUsageDescription
相机 NSCameraUsageDescription
持续获取地理位置 NSLocationAlwaysUsageDescription
使用时获取地理位置 NSLocationWhenInUseUsageDescription
蓝牙 NSBluetoothPeripheralUsageDescription
语音转文字 NSSpeechRecognitionUsageDescription
日历 NSCalendarsUsageDescription

参考资料

http://blog.csdn.net/wang631106979/article/details/52578001

http://blog.csdn.net/qq_30513483/article/details/52587483

http://blog.csdn.net/dcw050505/article/details/53038798

http://ask.dcloud.net.cn/article/931

© 著作权归作者所有

共有 人打赏支持
豆花饭烧土豆
粉丝 14
博文 352
码字总数 92353
作品 0
深圳
加载中

评论(1)

小码爱大牛
小码爱大牛
你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位会ffmpeg的Android开发工程师和一位iOS开工程师。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加起QQ。
关于升级 xcode8

郑重声明:楼主非大神,只是善于学习新技术,善于总结.非大神,非大神,非大神,重要的事情说三遍...... 升级xcode8已是必然,升级ios10的用户不能说大有人在,应该也不会少,楼主听说,如果不升级xco...

Jack088
2016/10/08
35
0
iOS开发Xcode8需要注意的那些坑

现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本,童鞋们有木...

人生好迈
2016/09/28
3.8K
0
iOS10适配远程推送

iOS10正式版发布之后,网上各种适配XCode8以及iOS10的文章满天飞。但对于iOS10适配远程推送的文章却不多。iOS10对于推送的修改还是非常大的,新增了UserNotifications Framework,今天就结合...

北方人在上海
2016/09/18
148
0
iOS10 适配、Xcode8配置总结①

一、Xcode8 插件你去哪了 以为是和之前一样 Xcode 升级了,只需要更新 Xcode info.plsit 中的 DVTPlugInCompatibilityUUID,结果发现一点用都木有泪奔;苹果解决xcode ghost,把插件屏蔽了,为...

秦无炎
2016/09/21
416
0
Xcode8相关

Xcode8 新特性 Interface Builder 在Xcode8中,苹果推出了更加强大的可视化编辑工具预览功能,可以在不运行App的情况下,预览当前XIB或SB在不同屏幕尺寸下的显示。 选择一个XIB文件进去,点击...

KevinEmily
2016/10/27
28
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
12分钟前
0
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
18分钟前
3
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
18分钟前
1
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
20分钟前
0
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部