I am looking to share data from other application to my application. As a requirement want to share either "public.url", "public.plain-text" or both. To achieve this followed some solution using predicate.
Tried with different style like below
Case-1
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
|| ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
).@count >= 1
).@count > 0
</string>
</dict>
Case-2
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
(
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
|| ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
)
).@count == 1
).@count == 1
</string>
</dict>
One observation: with TRUEPREDICATE app icons appear sometime for all app sharing extension view (Modal) use TRUEPREDICATE
<key>NSExtensionActivationRule</key>
<string>TRUEPREDICATE</string>
My Bundle setting like :
Bundel Id for main App : com.appname.devAppname
Share Extension target Bundle Id : com.appname.devAppname.AppnameShareExtension
App group group.com.appname.devAppname.AppnameShareExtension
can you help in this what I am missing.