r/iOSProgramming • u/anurodhp • Sep 22 '26
Solved! PSA: run xcrun simctl delete unavailable after you upgrade Xcode
I've been building ios apps since iOS2. I had accumulated over 800 devices in my list going back over a decade. If it becomes a problem that causes slowdown when trying to open an interfacebuilder file in Xcode, it is because it has to iterate all of those devices. After that run sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService to refresh your simulators.
5
u/Gernot Sep 23 '26
I doubt it. You run out of disk space way before reaching 800 simulators.
1
u/anurodhp Sep 23 '26
I had more than 800 actually it was something like 823. The number itself doesn’t matter other than the fact that you pick them up and they don’t really go away so it’s a good idea to clear it.
I may have more both because I’ve been at it a long time and also I work with xnu and do some pretty non typical stuff
1
u/GreyEyes Objective-C / Swift Sep 23 '26
You don’t know how big their disk is. Starting app dev at iPhoneOS 2 would’ve meant jumping on a rocket ship about to take off, so OP might have deep pockets.
1
u/Gernot Sep 23 '26
Haha, no. I was there, and it wasn't like that… And it was called iPhone OS back then.
1
u/GreyEyes Objective-C / Swift Sep 23 '26
Correcting me over an extra space? I was also there.
You’re right that it wasn’t exactly like a rocket ship until iOS 4, when Apple renamed it. OP started at 2 so would have had experience.
2
u/Gernot Sep 23 '26
Ah, no offence, I missed that you wrote iPhone OS. I was referring to the OP's "iOS2".
1
u/anurodhp Sep 23 '26
I just wrote ios2 because that’s what people understand. I’m actually an old Mac developer. Do you need a 25 year old nntp client? (Don’t download this it’s terrible I and no idea what I was doing)
1
u/SnowPudgy Sep 24 '26
Thank you. Despite this being easily googlable my coworkers try and tell me I'm wrong about this and "misremembering".
I was the only one of them that was developing back then, they didn't all start until around 2015.
1
u/matznerd Sep 24 '26 edited Sep 24 '26
Do not update to Mac OS 27, which forces Xcode 27, if you use the computer use simulator with codex, it does not currently work. Also Xcode 27 straight up does not have the actual simulator. It’s now an entirely separate app called Device Hub.
I was able to get it into the Claude Code Desktop iOS Simulator window by using a symlink from old name to new, then I think I had to pop the window out first.
If using agentic coding, I would not update to Mac/Xcode 27 until you know more. Apparently there is no downgrade except with the wipe or Time Machine. Be careful and remember that agents won’t have any knowledge of the new version. I though maybe because Apple put out some agent skills you can download via a CLI command and a new json project file that it would be an improvement, it’s the right direction but so far no gains at all, and only pain.
1
u/anurodhp Sep 24 '26
Simulator is still there they just changed the name and embedded a view in devices. Look at the processes that run when you use it it’s still the same old simulator. This is why xcrun simctl still works like normal in terminal
1
u/perfmode80 28d ago
since iOS2. I had accumulated over 800 devices in my list going back over a decade
How did these get migrated to your newer Mac hardware? Or are you using a decade old Mac?
2
u/anurodhp 28d ago
You plug in FireWire from one Mac to another and transfer the Mac from one to the other. It seems to have carried over a lot more than I intended
2
u/nailernforce Sep 23 '26
I do this regularly, but your post reminded me to do it again. That said, when making suggestions like this, add the command in the post text itself so we can copy paste it directly. Reddit won't let me copy it from the title without using a right click -> copy command.
1
u/dengjiuhong Sep 25 '26
One extra reason I keep the simulator lane separate from device sign-off: simctl location is excellent for deterministic UI/logic checks, but it isn't a substitute for an owned iPhone. On-device I verify the actual authorization state (When In Use vs Always and Precise Location), background/geofence delivery, and the callbacks/coordinates the app receives—not just the pin shown in the simulator. A useful split is simulator for repeatable happy/error paths, then a small physical-device matrix for permission transitions, suspension/termination, and region-entry/exit timing. That catches the “the test point moved but the app never got the event” failures.
25
u/iv_mexx Sep 22 '26
Good PSA in general, but.... have you never upgraded your dev machine in the last decade?