Swift 找不到';SFExtensionMessageKey';范围内

Swift 找不到';SFExtensionMessageKey';范围内,swift,xcode,safari-web-extension,Swift,Xcode,Safari Web Extension,我正在尝试构建,但它始终无法使用进行构建,在作用域中找不到“SFExtensionMessageKey”。我该如何解决这个问题 错误来自以下代码位: SafariWebExtensionHandler.swift 它失败是因为它在范围中找不到SFExtensionMessageKey,但当我查找它时,我看到它应该包含在范围中 当我直接在Xcode中检查Safari服务文件时,我没有看到任何关于SFExtensionMessageKey——这可能是我的困惑。但这似乎是重新命名的,也许吧 另一个想法

我正在尝试构建,但它始终无法使用
进行构建,在作用域中找不到“SFExtensionMessageKey”
。我该如何解决这个问题

错误来自以下代码位:

SafariWebExtensionHandler.swift 它失败是因为它在范围中找不到
SFExtensionMessageKey
,但当我查找它时,我看到它应该包含在范围中

当我直接在Xcode中检查Safari服务文件时,我没有看到任何关于
SFExtensionMessageKey
——这可能是我的困惑。但这似乎是重新命名的,也许吧

另一个想法是,我需要将Safarices框架添加到各个应用程序目标的构建阶段(在“使用库链接二进制文件”一节下)。这也没有解决问题


我使用的是Xcode 12.1和Swift 5。

如评论中所述,
SFExtensionMessageKey
仅适用于macOS 11+,而不适用于iOS或更早的macOS版本。

这是iOS还是macOS应用程序?SFExtensionMessageKey仅适用于macOS 11+macOS 10.15@MarcoBoerner。你找到问题了!那我就把它作为答案贴上去。:)值得注意的是,它只在MacOS 11中可用,但我可以通过升级到Xcode 12.2和MacOS 10.15来访问该变量。Xcode 12.1没有这个变量奇怪!甚至消息传递测试项目也将其目标设置为10.16
/*
See LICENSE folder for this sample’s licensing information.

Abstract:
Communicates with the extension running in Safari.
*/
import SafariServices

class SafariWebExtensionHandler: NSObject, NSExtensionRequestHandling {

    // Receive a message from the JavaScript component of the Web Extension.
    // Unpack the message, and then wrap in an object to send as the response.
    func beginRequest(with context: NSExtensionContext) {
        let item = context.inputItems[0] as? NSExtensionItem
        let message = item?.userInfo?[SFExtensionMessageKey] // ERROR HERE

        let response = NSExtensionItem()
        response.userInfo = [ SFExtensionMessageKey: [ "Response to": message ] ] // AND ERROR HERE
        
        context.completeRequest(returningItems: [response], completionHandler: nil)
    }
    
}