I'm encountering much of the same problem, and have narrowed my problem down to availability checks within my views, e.g.:
if #available(iOS 15.0, *) {
TextField("My Search Field", text: $myText)
.submitLabel(.search)
} else {
TextField("My Search Field", text: $myText)
}
From what I can tell, despite being on an actual device running iOS 14.x, it's trying to run the iOS 15 code - although not a problem on an Intel Mac running it in the simulator.