【原】xcode8因为权限程序崩溃的问题

2017-06-26  本文已影响26人  紫荆逸

xcode8如果代码中需要访问相册,相机,麦克风,蓝牙等都需要在info.plist设置一下权限才可以使应用正常运行起来。

一般权限错误都是这样的:

以相机为例:

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.

注意里面的关键字:NSPhotoLibraryUsageDescription。

这说明你需要找到你的info.plist,然后添加一个字段:NSPhotoLibraryUsageDescription,回车,key值你可以随意写,比如写“可以访问您的相机吗?”

重新运行,就可以了。

info.plist效果如下:


是不是发现为什么info.plist里为什么不是自己刚刚写的NSPhotoLibraryUsageDescription,而是Privacy - Photo Library Usage Description,哈哈,你把NSPhotoLibraryUsageDescription写上,然后回车,就可以看到自己写的NSPhotoLibraryUsageDescription变成了Privacy - Photo Library Usage Description。

所以,只要控制台报什么权限需要设置一下,你就直接复制放info.plist里就可以了。不用再去百度那个权限到底怎么拼写了。

这里备注一下几个常用的权限设置:

NSContactsUsageDescription -> 通讯录

NSMicrophoneUsageDescription -> 麦克风

NSPhotoLibraryUsageDescription -> 相册

NSCameraUsageDescription -> 相机

NSLocationAlwaysUsageDescription -> 地理位置

NSLocationWhenInUseUsageDescription -> 地理位置

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

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

Privacy - Calendars Usage Description -> 日历权限

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

最后再添加一个http请求需要允许的:

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

上一篇下一篇

猜你喜欢

热点阅读