繁体   English   中英

iPhone 和 Apple Watch 不共享应用程序组

[英]iPhone and Apple Watch not sharing App Group

两天来我一直在为这个问题而烦恼。 我在 iPhone 应用程序中生成了一个小电影文件,我想将它从 iPhone 发送到 Apple Watch 上播放。 作为概念验证,我在 Apple Watch 应用程序的捆绑包中放置了一个similar.mov,并且能够毫无问题地播放它。 所以我想,很简单,现在当我想向手表发送一个新的小剪辑时,我只需将它放在 App Group Shared 容器中,然后从那里访问它,而不是从 Bundle 中访问它。 没有!

我经历过大量的 SO 帖子,尝试了许多不同的方法,但都没有按预期工作。

在你问之前,我已经重新做了几次 App Group,从 iTunes Connect 中删除了旧的,重新生成了配置文件,多次清理了目标,多次删除了 DerivedData,删除了应用程序并重新启动了几次,几乎尝试了我能在 SO 上找到的每一个小调整和修复,没有任何帮助。

我确实认为我知道问题是什么,但不知道如何克服它。

这是我在 iPhone 应用程序和 Watch 应用程序中使用的代码,用于获取共享容器的路径(如果来自 Watch 端,则此代码段):

let fileManager = FileManager.default
    let sharedContainer = fileManager
        .containerURL(
            forSecurityApplicationGroupIdentifier: "group.com.mycompany.myappname")

    let dirPath = sharedContainer?.path
     sharedFilePathOnWatch = (dirPath! as NSString).appendingPathComponent("watchPreview.mov")

    print ("Shared File Path on Watch: \(sharedFilePathOnWatch)")
    print ("Shared File Path from iPhone: \(sharedFilePath)")

打印语句向我显示了我从 iPhone(通过 Watch Connectivity)发送到手表的共享文件路径以及 Watch App 解析的共享路径。

当它运行时我得到以下内容:

Watch 上的共享文件路径:/private/var/mobile/Containers/Shared/AppGroup/94AA7797-528D-4E96-9623-23285BE0742B/watchPreview.mov

iPhone 的共享文件路径:/private/var/mobile/Containers/Shared/AppGroup/4D43C314-CCBD-4861-BF90-69A8AC71198C/watchPreview.mov

现在我期望只有一个共享容器,并且 iPhone 和 Watch 都应该解析相同的路径,但事实并非如此。 我还注意到,这两个应用程序在多次运行时这些路径保持不变。 这不是一个动态地址,每次我运行时都会改变,就像我怀疑的那样。

作为最后一次尝试将其发送到 function,我认为由于我在 iPhone 上具有共享容器和 Apple Watch 上的共享容器的路径,也许我可以将文件从一个移动到另一个,因为,好吧,他们应该是共享的。 但是不,即使这样也行不通。

所以最大的问题是:

  1. 为什么我在共享应用程序上解析两个不同的路径
  2. 我如何将我的小电影文件从 iPhone 获取到 Apple Watch

随着watchOS2和原生watchOS应用程序的推出,Apple Watch 应用程序不再只是其 iOS 对应应用程序的扩展,因此它们不共享 AppGroup。

watchOS2开始,您不能使用 AppGroups 来共享数据。 您必须使用WatchConnectivity框架在iOSwatchOS应用程序之间发送数据。

有关该主题的更多信息,请参阅使您的 WatchOS 内容保持最新页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM