Skip to content

Unable to Boot iOS Simulator in Xcode and Flutter

Problem Statement

Many Flutter and Xcode developers encounter the frustrating "Unable to boot the simulator" error, often after a system reboot or macOS update. This issue prevents iOS simulators from launching, halting development workflows without clear explanation.

The problem typically appears suddenly, even when everything was working perfectly moments before. Standard troubleshooting steps like reinstalling simulators, running flutter clean, or updating command line tools often fail to resolve this issue.

Root Causes

Based on Apple's official reports and community findings, several factors contribute to this problem:

  1. Performance issues with reading simulator runtime disk images, especially when I/O competes with the dyld shared cache generation process
  2. Watchdog timer expiration while the dyld_sim shared cache attempts to map into a process
  3. System scanning delays where newly created caches require 1-2 minutes to complete scanning before they can be used
  4. XProtect updates that invalidate cached scan results (~weekly updates)

Primary Solution: Clear Xcode Caches (GUI Method)

For macOS 13 (Ventura) and later:

  1. Click the Apple logo menu → System Settings
  2. Search for "Storage" in the search bar
  3. Select "Developer" from the storage categories
  4. Delete "Xcode Caches"

For macOS 12 (Monterey) and earlier:

  1. Click Apple logo → About This Mac → Storage → Manage
  2. Select "Developer" from the sidebar
  3. Delete all developer cache content

TIP

This method is safe and doesn't affect your projects or installed simulators. The system will regenerate caches as needed.

Terminal Solution: Manual Cache Removal

If you prefer command-line tools:

bash
# Close all simulators first
sudo killall Simulator

# Remove core simulator caches
rm -rf ~/Library/Developer/CoreSimulator/Caches

# Optional: Remove additional developer data (more aggressive)
rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/
rm -rf ~/Library/Developer/Xcode/DerivedData/

WARNING

The more aggressive commands will remove device support files and derived data, which may require re-indexing and re-downloading components.

Alternative Troubleshooting Steps

If clearing caches doesn't resolve the issue:

  1. Try a different simulator: Launch a different device type from the Simulator app
  2. Force quit related processes: Use Activity Monitor to terminate any "xcdevice" processes
  3. Restart development tools: Close and reopen Android Studio/VSCode and development servers
  4. Check Xcode scheme settings: Ensure Runner Scheme uses "Debug" configuration with build executable checked

System and Software Updates

Update to the latest versions to benefit from Apple's fixes:

  • macOS 14.4+ includes performance improvements for simulator I/O
  • Xcode 15.3 Beta 2+ includes mitigation for the cache scanning issue

When to File a Bug Report

If none of these solutions work, you may be experiencing a different issue. Collect diagnostic data for Apple:

bash
# Collect simulator diagnostics
xcrun simctl diagnose

# Collect system diagnostics (requires sudo)
sudo sysdiagnose

# Enable debug logging
defaults write com.apple.CoreSimulator DebugLogging -bool YES

File a report at bugreport.apple.com with the collected data.

AVOID Unnecessary Extreme Measures

Do not uninstall Xcode unless absolutely necessary. This is time-consuming and rarely addresses the core issue. Most cases can be resolved through cache management and updates.

Prevention and Best Practices

  1. Regularly clear developer caches every few weeks
  2. Keep macOS and Xcode updated to the latest versions
  3. Use tools like "DevCleaner for Xcode" (App Store) to manage cache buildup
  4. Monitor available storage space on your development machine

The "Unable to boot the simulator" error is typically a temporary state caused by cache-related issues. With these solutions, you should be able to quickly resume iOS development in Flutter and Xcode.