在 Safari 中长按 link 打开的共享菜单中未显示应用程序图标

App icon not shown in Safari in the share menu opened by a long press on a link

我的应用有一个扩展。此扩展在 Safari 中可用。当我使用 Safari 分享按钮时

然后它会打开一个共享面板,我的应用程序图标就在那里。但是,如果我在 Safari 中按住 link 几秒钟,然后弹出以下警报 ,然后我点击 Share... 按钮,然后它会打开一个类似的共享面板,我看到那里是 Facebook 和 Twitter 图标,但我的应用程序图标丢失了。有人知道如何让它出现在那个共享面板中吗?

这是我点击 "Share..." 按钮时打开的内容:

我找到了解决办法。在我的扩展程序的 plist 中有一个名为 NSExtensionActivationRule 的键。它属于 NSExtensionAttributes 字典,而后者又属于 NSExtension 字典。所以 NSExtensionActivationRule 的值对我来说如下所示:

<string>SUBQUERY (
            extensionItems,
            $extensionItem,
            SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
            ).@count &gt;= 1
            ).@count &gt;= 1</string>

据我所知,这是 $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" 行,它发挥了所有的作用。

完整的 NSExtension 词典如下所示:

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>NSExtensionActivationDictionaryVersion</key>
        <integer>2</integer>
        <key>NSExtensionActivationRule</key>
        <string>SUBQUERY (
            extensionItems,
            $extensionItem,
            SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
            ).@count &gt;= 1
            ).@count &gt;= 1</string>
        <key>NSExtensionActivationUsesStrictMatching</key>
        <integer>2</integer>
    </dict>
    <key>NSExtensionMainStoryboard</key>
    <string>MainInterface</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.share-services</string>
</dict>