Skip to content

feat: .NET 10 multi-targeting, simulator enhancements, and output purity - #32

Closed
mattleibow wants to merge 1 commit into
mainfrom
pr/simulator-enhancements
Closed

mattleibow wants to merge 1 commit into
mainfrom
pr/simulator-enhancements

Conversation

@mattleibow

Copy link
Copy Markdown
Collaborator

Summary

All remaining changes from feature/simulator-enhancements, applied cleanly on top of current main (which includes PRs #30 and #31).

TFM Upgrade

  • Multi-target net8.0;net10.0 for libraries and tools
  • Target net10.0 for test projects
  • Add dotnet-version: 10.0.x to CI workflow

Simulator Command Enhancements

  • CreateWithUdidAsync — returns UDID from simctl create
  • Create command: --boot/--wait/--timeout options, JSON/XML output
  • Boot command: JSON output on success
  • Delete command: --force flag (shutdown first, ignore errors)
  • Logs command: empty logs → empty list, errors to stderr

Output Purity

  • Console.WriteLine for JSON/XML (no ANSI escape corruption)
  • New JsonPretty format
  • Exit code propagation fix in Program.cs

New Tests

  • AppleDev.Tool.Tests project with OutputHelperTests
  • SimCtlCreateWithUdidTests for CreateWithUdidAsync
TFM Upgrade:
- Multi-target net8.0;net10.0 for libraries (AppleDev, AppleDev.FbIdb,
  AppStoreConnectClient) and tools (AppleDev.Tool, AppleDev.Mcp.Server)
- Target net10.0 for test projects
- Add dotnet-version: 10.0.x to CI workflow

Simulator Command Enhancements:
- Add CreateWithUdidAsync to SimCtl — returns UDID from simctl create
- Create command: --boot/--wait/--timeout options, JSON/XML output with
  UDID, uses CreateWithUdidAsync
- Boot command: JSON output on success, inherits FormattableOutputCommandSettings
- Delete command: --force flag (shutdown first, ignore errors)
- Logs command: empty logs returns empty list, errors to stderr

Output Purity:
- Replace AnsiConsole.WriteLine with Console.WriteLine for JSON/XML
  output to prevent ANSI escape codes corrupting machine-parseable output
- Add JsonPretty format (indented JSON)
- Fix exit code propagation in Program.cs

New Tests:
- AppleDev.Tool.Tests project with OutputHelperTests (ANSI purity)
- SimCtlCreateWithUdidTests for new CreateWithUdidAsync method
- Add Tool.Tests to CI test step

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattleibow

Copy link
Copy Markdown
Collaborator Author

Splitting into smaller PRs. TFM changes moved to #33, simulator enhancements will follow.

@mattleibow mattleibow closed this Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant