崩溃请求授权给iOS 10中的照片库
我有一个示例iOS 10应用程序请求授权到照片库和崩溃在一个真实的设备上有以下崩溃错误:
PhotosAuthorizationCrashTest[2014:42551] [access] <private>
回购可以在这里find
这是请求授权的代码(Swift 3.0):
private func requestAuthorizationIfNeeded() { DispatchQueue.main.async { let status = PHPhotoLibrary.authorizationStatus() if status == .authorized { return } PHPhotoLibrary.requestAuthorization({ (status) in if status == .authorized { return } NSLog("Could not get authorization to access photos") }) } }
我发现这个问题与iOS 10中的某些使用说明键已经成为强制性的事实有关。
尽pipeNSPhotoLibraryUsageDescription
自从iOS 6开始就已经出现,但它只是成为了iOS 10的一个需求,而且崩溃消息并不是很有帮助。
在最新的Xcode(目前的Xcode 8 beta 3)的模拟器中,崩溃消息更为详细,(即使在一个设备上它仍然是一样的):
[访问]此应用程序已崩溃,因为它试图访问隐私敏感的数据没有使用说明。 应用程序的Info.plist必须包含一个带有string值的NSPhotoLibraryUsageDescription项,向用户解释应用程序如何使用这些数据。
所以添加NSPhotoLibraryUsageDescription
到我的Info.plist
文件已经解决了这个问题。
有关更多文档,请参阅Cocoa Keys
更具体地说,名为NSPhotoLibraryUsageDescription
的部分:
重要提示:为保护用户隐私,在iOS 10.0或之后链接的iOS应用程序以及访问用户照片库的iOS应用程序必须静态声明这样做的意图。 在应用程序的Info.plist文件中包含NSPhotoLibraryUsageDescription项并提供此项的用途string。 如果你的应用程序试图访问用户的照片库没有相应的目的string,你的应用程序退出。
- 在Interface Builder中使用自定义字体devise标签/文本视图
- 我如何以编程方式从iPhone设备上删除应用程序?
- iOS 8.0 – “未能及时更新场景”崩溃
- 设置默认的iOS网页剪辑图标标题?
- Swift中的“withEvent”的含义,以及一般的参数修饰符
- Transit MKDirectionsRequest产生空错误Error Domain = MKErrorDomain Code = 5“(null)”
- iOS 7 onchange事件在iPad 3 + Mini中破解//需要解决
- 如何让UITableViewCell图像更新到下载的图像,而不必滚动UITableView
- 如何将一个button添加到iOS中的表格视图单元格?