iOS - 通过共享扩展在应用程序之间移动项目

时间:2017-04-16 14:03:13

标签: ios swift file ios8-share-extension ios-app-group

有2个申请:

  1. WhatsApp应用程序
  2. 我的申请(testAPP)
  3. 我尝试在WhatsApp与我的应用程序(testAPP)之间共享音频文件,我已经实现了APP Group并共享扩展程序。

    我成功地在这些应用程序之间进行了集成并收到了一个URL,如下所示:

    文件:///private/var/mobile/Containers/Data/Application/xxxxxx/tmp/documents/xxxxxx/2017-04-16-AUDIO-00001077.opus

    当我尝试将此文件移动到本地文档应用程序时,问题就出现了,例如

    目的地路径: startingPath = /private/var/mobile/Containers/Data/Application/xxxxxx/tmp/documents/xxxxxx/2017-04-16-AUDIO-00001077.opus

    目标路径: endingPath = / var / mobile / Containers / Data / Application / 685A0D6F-AB7C-4DCF-ADD9-19AAE6A8DAFD / Documents

        do {
            try filemgr.moveItem(atPath: startingPath, toPath: endingPath!)
        } catch let error as NSError {
            NSLog("Unable to create directory \(error.debugDescription)")
        }
    

    我收到此错误,我不明白为什么

    无法创建目录错误Domain = NSCocoaErrorDomain Code = 516“”2017-04-16-AUDIO-00001077.opus“无法移动到”xxxx“,因为已存在具有相同名称的项目。” UserInfo = {NSSourceFilePathErrorKey = / private / var / mobile / Containers / Data / Application / xxxxx / tmp / documents / xxxxxxx / 2017-04-16-AUDIO-00001077.opus,NSUserStringVariant =(     移动 ),NSDestinationFilePath = / var / mobile / Containers / Data / Application / 6xxxx / Documents,NSFilePath = / private / var / mobile / Containers / Data / Application / xxxxx / tmp / documents / xxxxxx2 / 2017-04-16-AUDIO- 00001077.opus,NSUnderlyingError = 0x17005f6b0 {错误域= NSPOSIXErrorDomain代码= 17“文件存在”}}

1 个答案:

答案 0 :(得分:0)

最后我理解了这个问题。

当应用程序使用共享扩展以便在您的应用程序内部共享文件/图像时,该文件存在于以下位置:

/私有的/ var /移动/容器/数据/应用/

为了获得文件的完全权限,需要将文件复制到app group共享文件夹:

/私有的/ var /移动/容器/共享/ AppGroup /

将文件移动到app group shared文件夹后,您将获得该文件的完整权限