我正在编写一个带有共享扩展程序的Mac应用程序。用户可以选择单个pdf文档,单击共享按钮并选择我的扩展名。但是,我的扩展程序没有显示,我认为它与 info.plst 中的NSExtensionActivationRule
键有关。我使用谓词语句只允许我的扩展程序在用户选择一个PDF文档时显示。有关如何在Apple docs中执行此操作的示例:
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。
有什么想法吗?
我为此问题创建了一个测试应用。你可以得到它here。
更新 Apple Developer Technical Support说:
根据工程团队的说法,这是共享服务中的一个错误。 Preview和Finder共享的项目是指向的URL 打开/选择的文件。共享服务应该获得UTI URL引用的文件,并在扩展名中注册 item attachment的registeredTypeIdentifiers。这不会发生 用于PDF文件。因此,唯一注册的类型标识符是 " public.file-URL" (查询不允许的URL的UTI)。