2

我使用 UIActivityViewController 将图像和文本共享到 Message、Email、Facebook、Twitter 等。直到最近,我认为我可以发送任何大小的图像(至少高达 5MB)。但是,我注意到我不能再将大于 2.5MB 的图像发送到 Facebook 或 twitter。例如,我选择要分享的图像,打开 activityViewController 并选择 Facebook。activityViewController 慢慢打开 Facebook 界面/视图(但不显示附加图像)然后关闭 Facebook 视图(并隐式地关闭 activityviewcontroller)。该应用程序本身不会崩溃,因为我可以重新选择图像并通过消息或电子邮件发送它。我已经在这个应用程序上工作了几个月,几周前我在测试时认为它没有发生。将较小的图像分享到 Facebook 或 twitter 时我没有任何问题。我'

更新:

我提交了一份技术报告并获得了以下信息:Facebook 和 Twitter 被实现为系统验证的共享扩展。所有扩展都有内存限制。这可能会导致扩展程序终止,但我的应用程序会继续运行,因为它在单独的进程中运行。这可以使用设备控制台崩溃报告(不是 Xcode 调试控制台或 ~/Library/Logs/CrashReporter/ 中的崩溃报告)看到。设备控制台显示警告,例如“ShareExtension[4959] : Received memory warning”。

显然 Facebook 和 Twitter 等对服务施加了限制,建议我与他们联系以获取更多信息。苹果确实缩小了图像以符合限制。这似乎适用于共享单个文件而不是多个大图像(当我通过 Mail 共享多个文件对其进行测试时,第一个图像被调整大小但不是后来的图像)。奇怪的是,我现在可以将单个大文件共享到 Facebook/Twitter,但不能共享多个大文件。一旦您选择 Facebook 作为扩展名(从选择前的 12MB 跳到 >100MB),内存分配会非常大,以获取约 4MB 的照片。

Apple 建议我使用图像的 URL 而不是 UIImage 对象来更有效地处理更大的图像。这并没有解决我的问题,所以我将尝试使用 UIActivityItemProvider 来限制所有活动的文件大小,除了保存和打印......

4

0 回答 0