No simulators with 2677

Hi,
Im running macos catalina, xcode 12.4 and Fire. When i open an ios project there are no simulators listed.
I also see this in activity

← Exception in UI block: ‘Null Reference Exception for expression: {<-}.solution()’ at 0 CoreFoundation 0x00007fff341cffe7 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6d176a9e objc_exception_throw + 48
2 CoreFoundation 0x00007fff341cfe45 +[NSException raise:format:] + 181
3 Fire 0x0000000104cb682f -[ProjectSettingsToffeeDeploymentTargetSDKPicker valuesForProject:configuration:] + 1103
4 Fire 0x0000000104d35a67 -[__RemObjects_Fire_ProjectSystem_Views_ProjectSettingsViewController filterSettings] + 3799
5 Fire 0x0000000104d36a85 -[RemObjects_Fire_ProjectSystem_Views_ProjectSettingsViewController dataChanged] + 1477
6 Fire 0x00000001044d696d SBLDispatch
<>c__DisplayClass4 b__0$0 + 29
7 libdispatch.dylib 0x00007fff6e2bc6c4 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x00007fff6e2bd658 _dispatch_client_callout + 8
9 libdispatch.dylib 0x00007fff6e2c8cab _dispatch_main_queue_callback_4CF + 936
10 CoreFoundation 0x00007fff341933c3 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9
11 CoreFoundation 0x00007fff3415303a __CFRunLoopRun + 2042
12 CoreFoundation 0x00007fff341521e3 CFRunLoopRunSpecific + 466
13 HIToolbox 0x00007fff32d6dabd RunCurrentEventLoopInMode + 292
14 HIToolbox 0x00007fff32d6d7d5 ReceiveNextEventCommon + 584
15 HIToolbox 0x00007fff32d6d579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
16 AppKit 0x00007fff313b6669 _DPSNextEvent + 883
17 AppKit 0x00007fff313b4eb0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
18 AppKit 0x00007fff313a6bbe -[NSApplication run] + 658
19 AppKit 0x00007fff313789a6 NSApplicationMain + 777
20 Fire 0x0000000103cd57a7 +[Program Main::] + 423
21 libdyld.dylib 0x00007fff6e316cc9 start + 1
22 ??? 0x0000000000000002 0x0 + 2

Thanks,
John

The same project with big sur and xcode 13 is fine.

Not in Project Settings or there CrossBox popup in the toolbar?

The crossbox popup

Curious. If anything, this should have gotten more robust in 2677 (for me, I haven’t seem Simulators listed in a while because simctl list had a big on my machine where it would just hang and never exit, when run by Fire (it was fine run manually); only manually killing it would report the results. So I changed how this is run and added a timeout.

If you run “ps ax|grep simctl”, do you see any processes (aside from grep itself)? If yes, do yo get simulators if you kill the process?

This one seems entirely unrelated, and should affect the Settings pane. Do you see Deployment Targets?

Are you isn internal or external compiler (and this SDKs)? If external, is it recent/matching Fire, or older? I’ll try to dry-debug this NRE; and then I’ll see if I can add logging to the Simulator stuff and get yu a new build…

Hmm, but really, if project?.solution is nil, you should have much larger issues — nothing should work… Strange.

The deployment targets dropdown with the versions ? I see 9-14

I was running with the external compiler. They are both 2677

It look like everything else is working.

Also I dont see any processes apart from grep

Is this still an issue for you with latest?

Yes it is

Okay :(. lemme add some extra logging and get you a special Fire build.

Ok, new build is running, should be on Firehouse in an hour or so. please use these steps when you have it:

  • launch Fire while holding down Shift, so it starts without reloading any projects.
  • open the Activity Windows (Command-Shift-9).
  • Open an iOS project

you should see output like this:

Running /usr/bin/xcrun simctl list
SIMCTL LIST: running async: /usr/bin/xcrun
SIMCTL LIST: got stderr: 2021-11-01 16:34:01.095615-0400 xcrun[29228:5993410] Unknown binary with magic 0x622f2123 at /Users/mh/Applications/Xcode-13.2-Beta1.app/Contents/Developer/usr/bin/simctl
SIMCTL LIST: got stdout: == Device Types ==
SIMCTL LIST: got stdout: iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
SIMCTL LIST: got stdout: iPhone 5 (com.apple.CoreSimulator.SimDeviceType.iPhone-5)
SIMCTL LIST: got stdout: iPhone 5s (com.apple.CoreSimulator.SimDeviceType.iPhone-5s)
...
SIMCTL LIST: got stdout:     Phone: iPhone 13 (30D78FE3-DEA9-4158-86EA-78232F2A36ED) (Shutdown)
SIMCTL LIST: got exit code 0
SIMCTL LIST: waiting for process to end
SIMCTL LIST: done, final output: ...

and that last line should replicate all the individual stdout output, same as (i hope) you see when you run /usr/bin/xcrun simctl list yourself.

1 Like

Up.

I get this

Running /usr/bin/xcrun simctl list
SIMCTL LIST: running async: /usr/bin/xcrun
SIMCTL LIST: waiting for tiomeout
SIMCTL LIST: timed out after 5000ms. killing.
SIMCTL LIST: waiting for process to end
SIMCTL LIST: got exit code 15
SIMCTL LIST: done, final output:

I get this from the commandline

john.txt (41.9 KB)

Odd. that (minus the timeout) is the behavior I had before my fix (it would just hang and never return; if I killed it manually Fire would then get the result and show the Sims)

What happens if you run “killall simctl” before it can reach the timeout?

So it’s working now.

The first time I ran it from the command line it appeared slow, I didn’t mention anything because when I ran it again it was faster.

My mac mini isn’t exactly the fastest, could that be something to do with it ?

I also reproduced it on my m1 macbook air. An xcode dialog pops up about entering your password but I think Fire is killing the process so I cant do that.

So I think there are 2 problems. On my macbook air, if xcode wants to install extra components, then fire kills the process before I can enter my password. I then need to run xcode to install extra components, at this point it works ok.

On my mac mini, if I reboot and run fire then it times out. If I then pop into a prompt and run /usr/bin/xcrun simctl list, then I can restart fire and it will work.

Oh yeah, it goes without saying that you need to have Xcode fully installed, and that will include letting it do its first-run stuff. I’ll add that do the setup docs.

Weird. if you reeboot and run it manually once first, does it run fine and without any prompts?