Conversation
Add Apple CLI commands (xcode, runtime, simulator management) backed by the Xamarin.Apple.Tools.MaciOS NuGet package from macios-devtools. New commands: - maui apple xcode list — List installed Xcode installations - maui apple runtime list [--platform] — List simulator runtimes - maui apple simulator list — List simulator devices - maui apple simulator start/stop/delete — Manage simulators Implementation: - IAppleProvider/AppleProvider using Xamarin.MacDev APIs (XcodeManager, SimulatorService, RuntimeService, CommandLineTools) - Apple health checks in DoctorService (Xcode, CLT, iOS runtimes) - Apple simulator devices in DeviceManager - FakeAppleProvider for unit testing - 9 new tests (127 total, all passing) - Maestro dependency for Xamarin.Apple.Tools.MaciOS 1.0.0-preview.1.26201.1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds an Apple platform feature set to the MAUI CLI, enabling discovery and basic management of Xcode/simulator tooling via the Xamarin.Apple.Tools.MaciOS-backed provider and wiring it into existing doctor + device flows.
Changes:
- Introduces
maui apple ...command group (xcode/runtime/simulator) with JSON + table output. - Adds
IAppleProvider/AppleProviderand wires Apple checks intoDoctorServiceand Apple simulators intoDeviceManager. - Adds Apple tooling dependency/version plumbing plus unit-test fakes and coverage for new behaviors.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Cli/Microsoft.Maui.Cli/Services/DoctorService.cs | Adds Apple health checks and apple category support. |
| src/Cli/Microsoft.Maui.Cli/Services/DeviceManager.cs | Includes Apple simulator devices in device aggregation. |
| src/Cli/Microsoft.Maui.Cli/ServiceConfiguration.cs | Registers IAppleProvider and supports test overrides. |
| src/Cli/Microsoft.Maui.Cli/Providers/Apple/IAppleProvider.cs | Defines Apple provider API + DTO records for CLI output. |
| src/Cli/Microsoft.Maui.Cli/Providers/Apple/AppleProvider.cs | Implements Apple tooling operations and doctor checks via Xamarin.MacDev. |
| src/Cli/Microsoft.Maui.Cli/Program.cs | Wires Apple commands and exposes Program.AppleProvider. |
| src/Cli/Microsoft.Maui.Cli/Microsoft.Maui.Cli.csproj | Adds Xamarin.Apple.Tools.MaciOS package reference. |
| src/Cli/Microsoft.Maui.Cli/Errors/ErrorCodes.cs | Adds E22xx Apple-related error codes. |
| src/Cli/Microsoft.Maui.Cli/Commands/AppleCommands.cs | Implements maui apple command tree and formatting. |
| src/Cli/Microsoft.Maui.Cli.UnitTests/ServiceConfigurationTests.cs | Verifies DI registration and override behavior for Apple provider. |
| src/Cli/Microsoft.Maui.Cli.UnitTests/Fakes/FakeAppleProvider.cs | Adds configurable fake Apple provider for tests. |
| src/Cli/Microsoft.Maui.Cli.UnitTests/DoctorServiceTests.cs | Adds tests asserting Apple checks are included. |
| src/Cli/Microsoft.Maui.Cli.UnitTests/DeviceManagerTests.cs | Adds tests asserting Apple simulators flow into device listing/filtering. |
| eng/Versions.props | Adds centrally-managed Apple tools version property. |
| eng/Version.Details.xml | Adds maestro-managed dependency entry for Apple tools. |
| Directory.Packages.props | Pins Apple tools package version via central package management. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Member
|
Make sure to also update README(s)! |
…nc from sync handlers, check platform before resolving provider Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Apple CLI commands backed by the
Xamarin.Apple.Tools.MaciOSNuGet package from dotnet/macios-devtools.New Commands
maui apple xcode listmaui apple runtime list [--platform]maui apple simulator listmaui apple simulator start <name-or-udid>maui apple simulator stop <name-or-udid>maui apple simulator delete <name-or-udid>Implementation
Xamarin.MacDevAPIs (XcodeManager,SimulatorService,RuntimeService,CommandLineTools)applecategorymaui device listDependency
Added
Xamarin.Apple.Tools.MaciOS 1.0.0-preview.1.26201.1as a maestro dependency from thedotnet10feed.Tests