I have a couple of hundred items in my app. I index every item with CSSearchableItem. Every time user open the screen with the item I create the NSUserActivity with the same data as in CSSearchableItem (CSSearchableItemAttributeSet for CSSearchableItem and for NSUserActivity is the same, contain the same title, description and image). Of course CSSearchableItemAttributeSet for NSUserActivity has the same relatedUniqueIdentifier as CSSearchableItem uniqueIdentifier. NSUserActivity has publicIndexing flag. When user search in spotlight he see only CSSearchableItem results, because data is the same and as I can see CSSearchableItem have more priority.
Does public index will work correctly if user can select only CSSearchableItem in search results and never will see the NSUserActivity there? Do the spotlight system know, that selected CSSearchableItem also have a NSUserActivity with publicIndexing flag and when the user tap on CSSearchableItem send this information to server?