Orphaned 9GB Simulator Runtime in /System/Library/AssetsV2 - Cannot Delete (SIP protected)

I have an orphaned asset folder taking up 9.13GB located at:

/System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/c0d3fd05106683ba0b3680d4d1afec65f098d700.asset

It contains SimulatorRuntimeAsset version 18.5 (Build 22F77).

Active Version: My current Xcode setup is using version 26.2 (Build 23C54).

I checked the plist files in the directory and found what seems to be the cause of the issue:

The "Never Collected" Flag: The Info.plist inside the orphaned asset folder explicitly sets the garbage collection behavior to "NeverCollected":

<key>__AssetDefaultGarbageCollectionBehavior</key>
<string>NeverCollected</string>

The Catalog Mismatch: The master catalog file (com_apple_MobileAsset_iOSSimulatorRuntime.xml) in the parent directory only lists the new version (26.2). Because the old version (18.5) is missing from this XML, Xcode and mobileassetd seem to have lost track of it entirely.

What I Have Tried (All Failed)

Xcode Components: The version 18.5 does not appear in Settings -> Components, so I cannot delete it via the GUI.

Simctl: xcrun simctl list runtimes does not list this version. Running xcrun simctl runtime delete 22F77 fails with: "No runtime disk images or bundles found matching '22F77'."

Manual Deletion: sudo rm -rf [path] fails with "Operation not permitted", presumably because /System/Library/AssetsV2 is SIP-protected.

Third-party Tools: Apps like DevCleaner do not detect this runtime (likely because they only scan ~/Library or /Library, not /System/Library).

Has anyone found a way to force the system (perhaps via mobileassetd or a specific xcrun flag) to re-evaluate this folder and respect a deletion request?

I am trying to avoid booting into Recovery Mode just to delete a cache file.

Any insights on how AssetsV2 handles these "orphaned" files would be appreciated.

Answered by DTS Engineer in 881507022

matthewruzzi wrote:

Report a bug

Exactly!

See Bug Reporting: How and Why? for lots of hints and tips about filing effective bug reports.

Also, if you do file a bug, please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Suffering the same problem, very well explained thanks!

Same as you, I tried all alternatives I know but was unable to cleanup the orphaned runtimes. In my case they amount to 30GB (they are three orphaned runtimes)

Facing the same problem

I am encoutering the same problem with a universal iOS simulator version (18.5)

Because the old version (18.5) is missing from this XML, Xcode and mobileassetd seem to have lost track of it entirely.

I managed to get Xcode to recognise it, but Xcode chooses to soft delete instead of ing the disk.

Running scan-and-mount identifies the orphan simulator:

> xcrun simctl runtime scan-and-mount
> xcrun simctl runtime list
== Disk Images ==
-- iOS --
iOS 26.2 (23C54) - E2B78652-EDF6-450D-BC2C-2F0B11B3AD95 (Ready)
-- unknown --
<unknown platform> - CE40DFD4-ACAC-4A6B-975A-51148DA604B0 (Verifying)

Total Disk Images: 2 (7.8G) [Note: 1 image(s) are of unknown size]
> xcrun simctl runtime list
== Disk Images ==
-- iOS --
iOS 18.5 (22F77) - CE40DFD4-ACAC-4A6B-975A-51148DA604B0 (Ready)
iOS 26.2 (23C54) - E2B78652-EDF6-450D-BC2C-2F0B11B3AD95 (Ready)

Total Disk Images: 2 (7.8G) [Note: 1 image(s) are of unknown size]

Then I tried to directly delete the simulator:

> xcrun simctl runtime delete 22F77
> xcrun simctl runtime list
== Disk Images ==
-- iOS --
iOS 18.5 (22F77) - CE40DFD4-ACAC-4A6B-975A-51148DA604B0 (Deleting)
iOS 26.2 (23C54) - E2B78652-EDF6-450D-BC2C-2F0B11B3AD95 (Ready)

Total Disk Images: 2 (7.8G) [Note: 1 image(s) are of unknown size]
> xcrun simctl runtime list
== Disk Images ==
-- iOS --
iOS 26.2 (23C54) - E2B78652-EDF6-450D-BC2C-2F0B11B3AD95 (Ready)

Total Disk Images: 1 (7.8G)

simctl lied and the simulator is still there:

> ls -lah System/Volumes/Data/System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/
Permissions Size User           Date Modified Name
drwxr-xr-x@    - _nsurlsessiond  7 Jun  2025   c0d3fd05106683ba0b3680d4d1afec65f098d700.asset
drwxr-xr-x@    - _nsurlsessiond 25 Jan 17:43   e4478b4b9014ff28fe3c265daca488f55a284f4c.asset
.rw-r--r--  2.0k root           25 Jan 17:48  󰗀 com_apple_MobileAsset_iOSSimulatorRuntime.xml
.rw-r--r--  3.6k root           25 Jan 17:29   com_apple_MobileAsset_iOSSimulatorRuntime.xml.purged

The Info.plist of simulator iOS26.2 and iOS18.5 is identical (except iOS26.2 has a Architectures property). Both have __AssetDefaultGarbageCollectionBehavior=NeverCollected. So I dont think that is the problem.

Also in my case, /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime.xml actually only shows the iOS18.5 simulator:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AssetType</key>
	<string>com.apple.MobileAsset.iOSSimulatorRuntime</string>
	<key>Assets</key>
	<array>
		<dict>
			<key>ArchiveDecryptionKey</key>
			<string>15wwfkrSon24ww9+9QlQlGA2R0LtJhwI7kTTmiYCUNk=</string>
			<key>ArchiveID</key>
			<string>HIxuIFG8vmJvbIM/soIBLz64wFaDOd9Iup1ZYAv1CrA=</string>
			<key>AssetFormat</key>
			<string>AppleArchive</string>
			<key>AssetType</key>
			<string>com.apple.MobileAsset.iOSSimulatorRuntime</string>
			<key>Build</key>
			<string>22F77</string>
			<key>Ramp</key>
			<false/>
			<key>SimulatorVersion</key>
			<string>18.5</string>
			<key>_CompressionAlgorithm</key>
			<string>AppleArchive</string>
			<key>_DownloadSize</key>
			<integer>8858370048</integer>
			<key>_Measurement</key>
			<data>
			BoX4n0866stvYXjfzb5FUKKXySs=
			</data>
			<key>_Measurement-SHA256</key>
			<data>
			gCkk0Tyi9WSI6cd8kOOYgg5X0rINR9qLGx+g1mfNnNg=
			</data>
			<key>_MeasurementAlgorithm</key>
			<string>SHA-1</string>
			<key>_UnarchivedSize</key>
			<integer>9128947712</integer>
			<key>__AssetDefaultGarbageCollectionBehavior</key>
			<string>NeverCollected</string>
			<key>__BaseURL</key>
			<string>https://updates.cdn-apple.com/2025/mobileassets/043-39934/7E9105AB-C0A9-4842-9F83-51647042E3BF/</string>
			<key>__CanUseLocalCacheServer</key>
			<true/>
			<key>__RelativePath</key>
			<string>com_apple_MobileAsset_iOSSimulatorRuntime/1DDBFF7D-AF07-4905-B63C-25AE53C4702A.aar</string>
			<key>__override_dupe__</key>
			<true/>
		</dict>
	</array>
	<key>CachedAssetSetId</key>
	<string>91c08968-dff6-4825-bf38-a3aee7ca42ac</string>
	<key>DownloadedFromLive</key>
	<string>https://gdmf.apple.com/v2/assets</string>
	<key>catalogInfo</key>
	<dict>
		<key>isLiveServer</key>
		<true/>
	</dict>
	<key>lastTimeChecked</key>
	<date>2026-01-25T09:48:51Z</date>
	<key>postedDate</key>
	<date>2025-05-15T00:00:00Z</date>
</dict>
</plist>

The one thing that stands out is that minutes after running scan-and-mount, the simctl still cannot identify the size of the iOS18.5 image:

> xcrun simctl runtime list
== Disk Images ==
-- iOS --
iOS 26.2 (23C54) - E2B78652-EDF6-450D-BC2C-2F0B11B3AD95 (Ready)
iOS 18.5 (22F77) - A053B276-E553-48EE-86EC-FEACB14A4ED9 (Ready)

Total Disk Images: 2 (7.8G) [Note: 1 image(s) are of unknown size]

Inside System : Library I have the folder AssetsV2 with large Folders. com_apple_MobileAssest_iOSSimulatorRuntime 85.83 GB and .com_apple_MobileAssest_xrOSSimulatorRuntime 56.23 GB. Also _appleTVOS.. 21.41 GB and _watchOS.. 18.87 GB. I've tried xcrun simctl runtime list and delete. After a computer restart xcrun reported Total Disk Images dropping from 267.9G to 106.8G BUT no change to Finder reported sizes.

DaisyDisk showed 99G free and now 240G or 68G

A lot of disk images appear in Disk Utility but eject doesn't work for most of them, maybe none.

In Xcode I see a lot of simulators. I was able to delete many of them but no change to memory reported by the Finder.

It looks like I've tried the suggestions above.

I've run out of ideas.

Using Xcode : Settings : Components and deleting unused Other Installed Platforms as shown in thread https://developer.apple.com/forums/thread/810415 which points back to this thread.

DaisyDisk went from 240/68 GB to 345/76GB. Now orange instead of red!

Finder still shows the same size.

After additional testing, this appears to be an orphaned MobileAsset cleanup issue rather than a normal simulator uninstall problem.

The runtime payload remains on disk under /System/Library/AssetsV2, but in some cases Xcode no longer exposes it in Components/Platforms and simctl does not have a usable reference to remove it cleanly. In other words, the asset still occupies space, but the supported management tools have effectively lost authoritative control over it.

At that point the problem becomes structural: the remaining files are in a SIP-protected system location. So even if the exact asset folder can be identified, it cannot be manually removed through normal user-space means while SIP is enabled. That leaves no supported path to reclaim the space once the asset has fallen out of Xcode/simctl management.

Technically, the remaining workaround is to disable SIP and remove the orphaned asset manually, but that is not a reasonable solution for routine simulator runtime cleanup. SIP exists specifically to prevent modification of protected system locations, and turning it off to recover disk space from a leaked MobileAsset is a security regression and a poor operational workaround.

So the practical conclusion seems to be:

  1. If Xcode or simctl can still see the runtime, removal may work.
  2. If the runtime is no longer visible there but the asset remains under AssetsV2, there is no supported deletion path with SIP enabled.
  3. This looks like an Apple-side bug in runtime asset lifecycle management and cleanup, because the system can retain large orphaned assets in a protected location without providing a supported way to remove them.

I'm having the same issue; is there any way to get Apple's attention on this?

matthewruzzi wrote:

Report a bug

Exactly!

See Bug Reporting: How and Why? for lots of hints and tips about filing effective bug reports.

Also, if you do file a bug, please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

OK by this: I tried deleting iOS 18 runtime via Xcode Settings > Components, and even removed iOS 26 runtime then re-downloaded it. But the iOS 18 runtime keeps auto-reappearing right after! I also ran sudo rm -rf against the iOS 18 asset folder, and it just throws a permission error—totally useless. I checked the Info.plist under /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/cc1f035290d244fca4f74d9d243fcd02d2876c27.asset/ and confirmed this folder is exactly the orphaned iOS 18.0 simulator runtime. I’m trying to delete this specific cc1f035290d244fca4f74d9d243fcd02d2876c27.asset folder but hit a wall with system permissions. I found this exact issue is already being discussed in the Apple Developer Forum thread here: Orphaned 9GB Simulator Runtime in /System/Library/AssetsV2 - Cannot Delete (SIP protected). It’s clearly a bug on Apple’s side with MobileAsset lifecycle management—these large orphaned simulator runtime assets get stuck in SIP-protected system directories, and Xcode/simctl lose the ability to manage/delete them properly. The only technically workable fix (UNOFFICIAL, not recommended by Apple) is to temporarily disable SIP, boot into Recovery Mode to delete the file manually, then re-enable SIP immediately (critical for system security—never leave SIP disabled). Here’s the exact step-by-step that worked for me: Shut down your Mac completely. Boot into Recovery Mode: Press the power button, then immediately hold Command + R (for mechanical/non-Apple keyboards, use the Windows/Start key + R if Alt+R doesn’t work) until the Apple logo/progress bar appears, then release. In Recovery Mode, click Utilities in the top menu bar → open Terminal. Run csrutil disable to turn off SIP, then follow the prompt to restart your Mac. After rebooting to the normal system, open Terminal and run: sudo rm -rf /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/cc1f035290d244fca4f74d9d243fcd02d2876c27.asset Enter your admin password—no more permission errors this time, and the folder deletes successfully. RE-ENABLE SIP (MANDATORY): Reboot your Mac into Recovery Mode again (repeat step 2). Open Terminal in Recovery Mode once more, run csrutil enable to reactivate SIP, then restart your Mac normally. Verify the deletion: Run ls -ld /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/cc1f035290d244fca4f74d9d243fcd02d2876c27.asset—the folder should no longer exist. This is a pretty janky workaround, though. It’s ridiculous we have to disable SIP (a core macOS security feature) just to clean up orphaned simulator runtimes that Apple’s own tools can’t manage. Hoping Apple fixes this MobileAsset cleanup bug soon so we don’t have to jump through these hoops!

Orphaned 9GB Simulator Runtime in /System/Library/AssetsV2 - Cannot Delete (SIP protected)
 
 
Q