0

我为多平台 iOS/macOS 应用程序设置了 SharePlay,我什至可以启动和加入会话并在两个设备之间发送数据,但是每当收到数据时,我都会收到以下错误:

SharePlayTutorialMac[33577:704067] [Default] messageStream:108 Explanation: Decoding message from data Error: Swift.DecodingError.valueNotFound(Any, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: “message”, intValue: nil), CodingKeys(stringValue:“t”,intValue:nil)],debugDescription:“Swift.Array<SharePlayTutorialMac.SharePlayModel>.self 值的解码器未找到。”,underlyingError:nil))

我什至没有错误中提到的任何messaget值- 有谁知道为什么解码失败?

4

1 回答 1

0

在详细检查错误消息后,我看到模型的类型以某种绝对方式引用,例如SharePlayTutorialMac.SharePlayModel而不仅仅是SharePlayModel

我发现问题是由于产品名称不同,因为我首先创建了一个 iOS 目标并随后添加了 macOS 目标,这导致产品名称被引用为$(TARGET_NAME)。因此,您只需为两个目标使用相同的产品名称!对于多平台应用程序,这是默认完成的。

我还偶然发现了其他问题,因此,为 SharePlay 设置编写了一个完整的教程 - 您可以在此处找到有关产品名称修复的更详细描述。

于 2021-11-28T16:02:55.857 回答