Can't find attribute named…

I've been working on a game for a long time, and it runs without errors on 10.15, but I ran it on 10.14 and it crashes with this exception


*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't find attribute named stat'


"stat" is a relationship in my coredata model and I don't know how I would go about fixing something like that. I've already tried reamaking my model and it doesn't change. The thing is that I actually started this project in Mojave and the model hasn't changed since then.



EDIT:


So i think i figured it out, but not sure what to do about it. Here is what is going on


I have 1 entity with a constraint of 1 Attribute (instrument) and a Relationship (stat). Constraints = stat, instrument. This works in Catalina, but it crashes in OSs before it, it gives me the error above. So basically in older OSs I can't use a realationship as a constraint.


I'm not sure how important the constraint is, I could simply remove, but then the game crashes because the old database can't be migrated. So basically to get rid of the constraint and move on I either need to tell my users to delete all their game scores and progress, or maintain 2 different versions of the game, 1 for catalina and 1 for older OSs


This is a real bummer. Not sure if this is a new feature for Catalina or a bug. But I can't find it in the documentation.

Replies

Sounds like you need to implement a new model version if it crashes. See:

https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html