UIActivityViewController Error: Failed to determine whether URL is managed by a file provider

UIActivityViewController Error: Failed to determine whether URL is managed by a file provider

我在我的应用程序中录制视频并将其写入临时目录以允许用户通过 UIActivityViewController 共享它。视频可以在应用程序内成功播放,并且可以通过 UIActivityViewController 成功地通过消息发送,分享到 Facebook,并保存到相机胶卷。但是当我尝试通过 WhatsApp 分享时,出现以下错误:

Failed to determine whether URL /private/var/mobile/Containers/Data/Application/E7F57458-A5F9-44CB-86FA-ACC4309C7473/tmp/65CB72B3-373E-42F2-8A80-9888E00C2268.mp4 (n) is managed by a file provider

我找不到关于此错误的更多信息。有谁知道为什么会发生这种情况?

我也有同样的错误。实际上会发生什么 - 每个应用程序 运行 文件的路径都不相同但是 我不记得为什么 我不仅保存文件的名称 - 但整个路径。当我尝试阅读它时是合理的——我什么也得不到。示例 - 如果我保存每个应用程序的文件 运行:

/var/mobile/Containers/Data/Application/1265C296-F2B1-44D6-AD3D-6F2DD59557D3/Documents/what.jpeg
/var/mobile/Containers/Data/Application/B2B53592-B327-48E9-BF70-BE2826022271/Documents/what.jpeg
/var/mobile/Containers/Data/Application/2505B73F-27EF-4B5C-8D21-EB49A45ABE99/Documents/what.jpeg

正确做法 - 使用FileManager中的文件夹路径,您可以找到更多信息here

+ (NSURL *)getDocumentsDirectoryPath {
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]lastObject];
}

找到修复:

我正在打开一个带有视频 url 和一个字符串作为 activityItems 的 UIActivityViewController。仅传递视频 url 修复了 WhatsApp 无法识别视频的问题。文字传不上去很烦人,不过至少现在有视频了

无效:

UIActivityViewController(activityItems: [url, "Check out my video!"], applicationActivities: nil)

有效:

UIActivityViewController(activityItems: [url], applicationActivities: nil)

我在模拟器上 运行 我的应用程序时遇到了同样的问题。但是,当我 运行 在真实设备上运行该应用程序时,它按预期工作。