UIActivityViewController 是不是需要 info.plist 隐私密钥才能将图像保存到照片或电子邮件

Posted

技术标签:

【中文标题】UIActivityViewController 是不是需要 info.plist 隐私密钥才能将图像保存到照片或电子邮件【英文标题】:Does UIActivityViewController need info.plist privacy keys to save images to photos or emailUIActivityViewController 是否需要 info.plist 隐私密钥才能将图像保存到照片或电子邮件 【发布时间】:2016-12-10 12:46:42 【问题描述】:

UIActivityViewController 是否需要 Info.plist 隐私密钥: NSContactsUsageDescriptionNSPhotoLibraryUsageDescription 以电子邮件发送或将图像保存到照片库?

我从未在这些测试活动中看到它崩溃,但我在 ios 10 设备上看到了一些崩溃报告(不是很多),堆栈跟踪中有 CRASHING_DUE_TO_PRIVACY_VIOLATION。应用程序涉及隐私的唯一地方是用户是否使用我通过 UIActivityViewController 活动提供的功能通过电子邮件共享屏幕截图或将其保存到照片库。这是 Apple 提供的框架,据我所知,我的应用无法实际访问任何数据?!

UIActivityViewController 的文档没有说明在这些类型的活动中需要这些字符串以 访问联系人或照片库。

【问题讨论】:

【参考方案1】:

NSPhotoLibraryUsageDescription 如果 UIActivityViewController 允许活动,则需要在 info.plist 中设置:UIActivityTypeSaveToCameraRoll

这并没有显示为崩溃,因为如果用户登录 iCloud 并使用共享到照片流,在没有隐私密钥的情况下似乎可以正常工作,但是当使用保存到相机胶卷的 OTHER 不太突出的选项时, 确实在没有钥匙的情况下崩溃。

你会认为他们会在文档中提到这一点;)

【讨论】:

以上是关于UIActivityViewController 是不是需要 info.plist 隐私密钥才能将图像保存到照片或电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityViewController 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色