iOS 10:共享图像/保存图像开始崩溃

Posted

技术标签:

【中文标题】iOS 10:共享图像/保存图像开始崩溃【英文标题】:iOS 10: sharing image/save image started crashing 【发布时间】:2016-09-24 15:36:52 【问题描述】:

我有一个通过 UIActivityViewController 共享一行文本和一个图像的代码。在我更新到 ios 10 后,它开始崩溃并显示以下日志:

此应用已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用的 Info.plist 必须包含一个 NSPhotoLibraryUsageDescription 键和一个字符串值,向用户解释应用如何使用这些数据。

我没有发布代码,因为它似乎发生在 Apple 自己的示例中。我找到了对应的radar,但没有找到 *** 主题。

希望它能节省一些人的时间。修复方法是将该行添加到您的 plist,即使应用程序本身不与照片库交互。如果有人找到更好的解决方案,那就太好了。

请注意,它与problem with UIImagePickerController 不同——它接近于相反的动作。

【问题讨论】:

UIImagePickerController crashes app | Swift3, Xcode8的可能重复 在发布问题之前总是search on the error。 @NiravD UIImagePickerController 允许从图库中选择图像。这篇文章是关于一个相反的动作——分享一张图片。与选择器的情况不同,程序员没有指定他想将其保存在照片中——它是由用户选择的。 @rmaddy 我找到了,但没有找到类似的。您还将它标记为 iOS 10 的问题,而不是 Swift 3,这似乎是错误的。相同的代码在同一部手机上的旧应用程序中运行良好。这些是用 Swift 2 构建的。 当您的应用使用 iOS 10 的 Base SDK 构建时,这是 iOS 10 下的新要求。语言无关。 【参考方案1】:

将 NSPhotoLibraryUsageDescription 添加到 Info.plist :-( 不要留空 - 它会重复使用 Apple 的默认问题,但仅适用于开发。将此类存档上传到 App Store 会触发错误。

【讨论】:

以上是关于iOS 10:共享图像/保存图像开始崩溃的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL 将图像作为数据下载到 iOS

iOS:将图像保存在 App Group 中以在 Apple Watch 上使用

在应用程序 iOS 中保存图像和视频

在包含应用程序和自定义键盘的 iOS8 之间共享图像

使用共享扩展将图像保存到文档文件夹

在 iOS 中与文本共享图像