Why Xcode does not show index options for CoreData entities and attributes?

As @tomharrington said, the solution is in the WWDC 2017 video: Indexing stuff begins at 10:32 and the demo at 16:40.

It's still possible to create and index via Xcode9:

  • First, select your entity, long-click on the + (Add Entity), and select Add Fetch Index.

first step

  • Then, name your index appropriately, the select the property you want to index on (and choose ascending or descending, depending on how is organized your data) second step

  • Finally, as explained on the video, this will not trigger a migration and user that update your app will not get your index. If you want to force a model migration, add an Hash Modifier by selecting the entity, and setting Right Panel > 3rd tab > Versioning > Hash Modifier. optionally, third step


Simple indexing is deprecated in iOS 11, and the Xcode 9 UI reflects that. This is from the docs for NSPropertyDesciption:

isIndexed deprecated

At WWDC 2017 the What's New in Core Data session described a new indexing API. Give that session a look.