2

我正在尝试为 macOS 12 Monterey 创建一个 Intents 扩展。

我做了什么:

  • 我创建了一个意图定义文件并配置了一个自定义意图
  • 我创建了一个 Handler 类,该类确认我的处理协议,该协议是由 Xcode 使用 Intent 定义创建的
  • 我添加了一个 Intents Extension 作为新目标,它在func handler(for intent: INIntent) -> Any

问题:

我的快捷方式操作确实出现在快捷方式中。但是,每当我使用我的操作运行快捷方式时,主应用程序都会启动,而不是扩展程序本身。

我已经能够弄清楚我做错了什么,请看下面的答案。

4

1 回答 1

3

我发现了两个可能的原因:

  1. 不要您的 Intent 添加到您的主应用程序的 Supported Intents ( info.plist),因为只有在您希望您的主应用程序通过func application(_ application: NSApplication, handlerFor intent: INIntent) -> Any?. 在应用程序委托(又名应用程序内处理)中 - 您希望您的扩展程序处理意图
  2. 默认情况下,Intent Extensions 不被沙盒化。因此,您必须App Sandbox在构建设置中启用并添加一个com.apple.security.app-sandbox设置为true. 默认情况下,Apple 确实应该为任何新的 Intent Extension 执行此操作。

干杯!

于 2021-10-06T19:57:02.563 回答