1. Analysis
Based on G Purcell's answer, I concentrated my focus on my SCNViews. This made it stop crashing (removing subtype names for all SCNViews):

But I could not make the custom classes initialize properly. I wouldn't work for me casting them at runtime to their subtypes, and XCode was still crashing sometimes.
2. The fix
There was no other way than writing code, and I am including it here, only if anyone else needed some help initializing the SCNViews programmatically (I struggled, first tried keeping the generic SCNViews.) So I removed all SCNViews alltogether (OK, not all - it still compiles with the two-three SCNViews in StoryBoard,) and added a UIView as a placeholder with the same constraints as before.
SCNView subclass:
First make sure the init(frame:) method is implemented -- in the case there is something going on in the init, add a custom init func, so it is called from either init:
override init(frame: CGRect) {
super.init(frame: frame, options: nil)
self.layoutIfNeeded()
self.customInit()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
customInit()
}
func customInit(){
self.sceneSetup()
self.intro()
self.layoutIfNeeded()
}
ViewController:
override func viewDidLoad() {
super.viewDidLoad()
self.customSceneView = CustomSceneView(frame: customSceneContainer.bounds)
self.customSceneContainer.addSubview(self.customSceneView)
self.customSceneView.widthAnchor.constraint(equalTo: customSceneContainer.widthAnchor, multiplier: 1).isActive = true
self.customSceneView.heightAnchor.constraint(equalTo: customSceneContainer.heightAnchor, multiplier: 1).isActive = true
}
Result:
Finally everything compiled, my Mac stayed awake. Some new additional constraints needed to be added for correct resizing when rotating the device. But at last, and after two months, I could upload new features to the App Store. :)