Generated swiftinterface file and NSManagedObject subclasses

I'm working with a Cocoa Touch framework, built for distribution, which uses Core Data managed object subclasses. When I implement the framework in a client project built with the same Xcode/Swift version as the framework, the app compiles successfully.

However, when I build the framework with Swift 5.1, and implement the framework in a client project using Swift 5.1.2, I get a compile error in the property declaration of the generated "swiftinterface" file. "@NSManaged not allowed on computed properties"

Sample from .swiftinterface file:

@objc @NSManaged dynamic public var id: Swift.Int64 {
    @objc get
    @objc set(value)
  }

Thoughts, rants, lessons, and/or workarounds are welcome!

Just an update:

If I remove the setter/getter, the app builds and runs, but I see this warning:

Cannot load Swift type information; AST validation error in "my_test_framewo

Any updates? I ran into the same issues.

This should have been fixed in Swift 5.2

2 Likes