我正在编写一个带有共享扩展的 Mac 应用程序。用户可以选择单个 pdf 文档,单击共享按钮并选择我的扩展名。但是,我的扩展名没有显示,我认为它与info.plstNSExtensionActivationRule
中的键有关。我使用谓词语句只允许我的扩展在用户选择一个 PDF 文档时显示。在Apple 文档中有一个关于如何做到这一点的示例:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf"
).@count == $extensionItem.attachments.@count
).@count == 1
如果我设置TRUEPREDICATE
为,它可以工作NSExtensionActivationRule
,但仅适用于 Preview.app。
有任何想法吗?
我为此问题创建了一个测试应用程序。你可以在这里得到它。
更新: 苹果开发者技术支持说:
根据工程团队的说法,这是共享服务中的一个错误。Preview 和 Finder 共享的项目是打开/选定文件的 URL。共享服务应该获取 URL 引用的文件的 UTI,并将其注册到扩展项附件的已注册类型标识符中。PDF 文件不会发生这种情况。因此,唯一注册的类型标识符是您的查询不允许的“public.file-url”(URL 的 UTI)。