When you run unit tests under the simulator, it (as far as I can tell) runs each test as a separate instance of the app. This means that if one test crashes, the rest are still run, and the crashing test is just reported as "ERROR" instead of "PASS" or "FAIL". This is a good design.
But if the app crashes at startup, the simulator crashes and exits (at least on MacOS) - but only if you're running unit tests. ie when not running unit tests, the app crashes, and the simulator stays open.
So if, for example, you put something like the first example in this bug report in your code, the simulator will crash and exit. Here's the crash report.
This isn't a huge deal, because all the tests were going to report as "ERROR" anyway, but crashing the app shouldn't crash the simulator (and it *doesn't* crash the simulator if you're just running the app; only when you're running in unit test mode).
Again, just to be clear, there are two different notions of "crash" here.
- My app crashing is my problem, but it shouldn't crash the simulator.
- The simulator crashing - even as a result of my app crashing - is Garmin's problem.