Xcode 7.3,共享扩展,似乎无法将数据从扩展传递到容器应用程序

Posted

技术标签:

【中文标题】Xcode 7.3,共享扩展,似乎无法将数据从扩展传递到容器应用程序【英文标题】:Xcode 7.3, Share Extension, Can't seem to pass data from extension to container app 【发布时间】:2016-05-19 16:07:00 【问题描述】:

Xcode 7.3、iPhone 6s+ ios 9.2.1

容器的组共享和共享扩展的所有设置似乎都正常。扩展方法被正确调用。但无论尝试什么(共享用户默认值)或(共享文件访问)设置用户默认值或写入文件的代码似乎都“突破”了范围。

部分代码示例

      if let defaults = NSUserDefaults(suiteName: "group.propergroupname") 
          defaults.setObject(url, forKey: "url")
          defaults.setObject("", forKey: "post")
          defaults.synchronize()

让 fileManager = NSFileManager.defaultManager()

    if let directory = fileManager.containerURLForSecurityApplicationGroupIdentifier("group.propergroupname") 
        let stringUrl = self.selectedMovie!.URL.absoluteString
        let filename = directory.absoluteString + "videodata.txt"
        do 
            try
                stringUrl.writeToFile(filename, atomically: true, encoding:  NSUTF8StringEncoding)
            print("file written")
         catch 
            print("file write problem")
        
    

所以对于默认值,第一个 defaults.setObject 刚刚爆发。

对于文件,writeToFile 爆发。

那么如何从 Share Extension 中获取信息到 Container App 中呢?

【问题讨论】:

【参考方案1】:

您是否打开了应用组? (查看随附的屏幕截图)。

同时检查您是否使用“group.propergroupname”作为您的应用组名称。

【讨论】:

是的,对于容器应用程序和共享扩展。 imgur.com/sip7C2B 如果您看到所有刻度,那么也许您可以 1. 清理 Build 文件夹,删除 Derived Data 文件夹并重新启动 Xcode。 2. 如果您的旧配置文件已失效并且您仍在使用它,请检查开发人员门户。 在那里做过。一直在做iOS。就像我说的,已经尝试了所有的技巧,但仍然没有成功。 那么我会建议你在一个测试项目中尝试这样做。只是为了确认我们没有遗漏任何重要步骤。

以上是关于Xcode 7.3,共享扩展,似乎无法将数据从扩展传递到容器应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法从共享扩展 ios 保存视频

在 Swift 4.2 Xcode 10 中使用动作扩展从 Safari 共享 PDF 文件失败

无法从项目中删除共享扩展,它仍然出现在 Safari 中

编辑 XIB 时 XCode 7.3 崩溃

如何在 iOS 应用程序和今日视图扩展程序之间共享数据

分享扩展反应原生 - 博览会