Skip to content

Add simulator runtime management APIs (maui apple runtime) #150

@rmarinho

Description

@rmarinho

Summary

Add library APIs for managing simulator runtimes, supporting the maui apple runtime commands from the CLI spec.

Commands to Support

Command Description
maui apple runtime list List installed and available simulator runtimes
maui apple runtime install <platform> [version] Download and install a simulator runtime
maui apple runtime delete <identifier> Remove a simulator runtime

Requirements

runtime list

  • List installed runtimes via xcrun simctl runtime list --json (Xcode 16+) or xcrun simctl list runtimes --json
  • List available (downloadable) runtimes
  • For each runtime: platform, version, build, identifier, disk size, source (bundled vs downloaded)

runtime install

  • Wraps xcodebuild -downloadPlatform <platform> or xcrun simctl runtime add <dmg>
  • Support specifying platform and optional version (default: latest compatible)
  • Report download progress for --json streaming output (type: "progress" messages)
  • Handle disk space checks

runtime delete

  • Wraps xcrun simctl runtime delete <identifier>
  • Validate no simulators are using the runtime before deletion (or warn)

Design Notes

  • Runtime management APIs changed significantly in Xcode 16 — handle both old and new simctl APIs
  • Downloads can be large (5-10 GB) — progress reporting is essential
  • Should support --dry-run to preview what would be installed/deleted

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions