Xcode 27 beta: @AppEntity(schema: .photos.asset) now requires iOS 27 (compiled for iOS 18 in Xcode 26)

Filed as FB23652582.

In Xcode 27 beta, this no longer compiles when the deployment target is below iOS 27:

@available(iOS 18.0, *)
@AppEntity(schema: .photos.asset)
struct AssetEntity: IndexedEntity { ... }
// error: 'asset' is only available in iOS 27.0 or newer

The identical source compiles under Xcode 26. It looks like the @AppEntity(schema:) macro now resolves .photos.asset to a declaration annotated for iOS 27, whereas in Xcode 26 it resolved to the (now-deprecated) iOS 16 declaration.

What seems off: the .photos.album entity in the same domain still builds fine at an iOS 18 deployment target — only .asset requires iOS 27. That asymmetry is what makes me think it may be an unintended availability change rather than a deliberate one.

Has anyone else hit this? And is this intended — i.e. is .photos.asset now meant to be iOS 27+ only, or should it still be usable from apps that deploy to iOS 18?

apple suggest these workaround https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-27-release-notes#Known-Issues

Workaround: To continue conforming to the schema, adopt the additional properties and move the code behind an availability check.

@noamfree Thanks for the workaround link and above all, thanks for the bug filing, the team will communicate with you using the Feedback Assistant.

You can see the status of your feedback in Feedback Assistant. There, you can track if the report is still being investigated, has a potential identifiable fix, or has been resolved in another way. The status appears beside the label "Resolution." We're unable to share any updates on specific reports on the forums.

For more details on when you'll see updates to your report, please see What to expect after submission.

Thanks again.

Albert  WWDR

Xcode 27 beta: @AppEntity(schema: .photos.asset) now requires iOS 27 (compiled for iOS 18 in Xcode 26)
 
 
Q