In the Get to Know App Intents WWDC session, it was said
New this year, you can now add Spotlight indexing keys directly on properties. Annotating properties allows Spotlight to show more relevant information to customers. When donating indexed entities, the framework will handle creating the searchable item and attribute set for you. After donating entities, they can be found in Spotlight.
How do you donate indexed app entities?
Making app entities available in Spotlight seems to state it's not necessary to donate entities:
The system can automatically extract the keys for Spotlight indexing at compile time and store them in the App Intents metadata that Xcode generates as part of your app’s bundle. As a result, Spotlight indexing is faster and can find your app entities without launching your app, and without you having to explicitly donate the entities to Spotlight. You also don’t need to manually update or remove entities from the Spotlight index when your app’s data changes.
Say I have a CarEntity. The user can create/update/delete cars at any time. What is the modern way to get cars to appear in Spotlight in iOS 26?
Any insight into the documentation seemingly contradicting the need to index (donate)?
I took a read through the documents you cited earlier, and I can see why its confusing. The goal of IndexedEntity
is so that you don't need to separately donate your app's content to Spotlight. For apps with large or complex data models, you're abstracting the details from your data model into an AppEntity
, and then you don't need to do the same thing with a separate abstraction to map your model into a CSSearchableItemAttributeSet
, which is what you may have done before IndexedEntity
was available.
— Ed Ford, DTS Engineer