共享扩展名张贴照片:无法确定URL是否由文件提供商管理

时间:2019-01-13 19:05:21

标签: ios iphone swift

我正在尝试实现共享扩展,该共享扩展会将PhotoLibrary中的图像发布到我的App中。但是我一直遇到这个错误:

2019-01-13 10:57:14.272148-0800 deegeu-swift-share-extensions-image-share[11664:1341769] 
    [default] [ERROR] Failed to determine whether URL /var/mobile/Media/PhotoData/OutgoingTemp/F49538B5-7AD5-46EA-BC0E-CEC304DEEB64/IMG_4293.JPG (s) 
    is managed by a file provider.

这是我尝试使用的确切项目源代码:Github Project 这是我密切关注的步骤:Video Tutorial

我的系统信息:iOS 12.1iPhone 6s

我已在Xcode中将项目信息(例如App Group,开发者资料)更新为我自己的信息。

可能是什么原因?

2 个答案:

答案 0 :(得分:1)

请尝试在真实设备上运行。

我尝试在模拟器中从存储库中运行代码,并遇到提到的错误。但是,当我在真实设备中运行该应用程序时,我能够实现所需的功能,如视频所示。

请注意,在设备上运行时,您需要设置正确的捆绑包标识符,应用组名称等。

您还需要在RedViewController,BlueViewController和ShareViewController swift文件中更改App组名称引用。

完成后,请同时运行主应用程序和扩展程序(在Xcode要求时选择主应用程序),您应该已启动并运行

答案 1 :(得分:1)

我认为,“照片”应用程序正在出现打印错误。对我有用的解决方案是:

  itemProvider.loadItem(forTypeIdentifier: kUTTypePNG as String) { [unowned self] (imageData, error) in
                        if let item = imageData as? NSURL {
                            let data = NSData(contentsOf : item as URL)
                            let image = UIImage(data : data! as Data)
                            print(image)
                        } else {
                            if let item = imageData as? UIImage{
                                print(item)
                            }
                        }
                    }

错误在那里仍然存在,但是我创建了我需要的UIImage实例。第一个条件是要从“照片”应用共享,否则我将获得正确的图像。