# Shipping .NET 10 for macOS 12+ and .NET 8 for macOS 11 Big Sur in one Avalonia app (LiveClaude v2.2.8)

> Source: <https://dev.to/leandrocannizzaro/shipping-net-10-for-macos-12-and-net-8-for-macos-11-big-sur-in-one-avalonia-app-liveclaude-1bcc>
> Published: 2026-11-14 23:07:26+00:00

If you use **Claude Code Remote Control** or **Cursor My Machines** from your phone, there is one brittle point in the workflow: both run as foreground processes inside a terminal. Close the window, hit a crash, or reboot — and your remote client loses the machine.

I built **[LiveClaude](https://github.com/LeandroCannizzaro/LiveClaude)** (MIT, C# / Avalonia) to turn those sessions into OS-supervised services:

`systemd` (Linux), `LaunchAgent` (macOS)`ConPTY` on Windows and `pty` on Linux/macOS with a C# VT emulator for one-time trust and login flows
👉 **User Manual & Downloads:** [https://leandrocannizzaro.github.io/LiveClaude/](https://leandrocannizzaro.github.io/LiveClaude/)

👉 **GitHub Repository (MIT):** [https://github.com/LeandroCannizzaro/LiveClaude](https://github.com/LeandroCannizzaro/LiveClaude)

When shipping LiveClaude `v2.2.x`, we hit an interesting cross-platform constraint: **.NET 10** Mach-O binaries (`apphost` and runtime `.dylib` s) are built by Microsoft with `LC_BUILD_VERSION minos 12.0`. Even if you lower `LSMinimumSystemVersion` to `11.0` in `Info.plist`, macOS 11 Big Sur still refuses to launch a `.NET 10` app.

We didn't want to downgrade Windows, Linux, or macOS 12+ from `.NET 10` just to support Big Sur. Instead, in **v2.2.7–v2.2.8**, we kept `.NET 10` as the default everywhere and added a parallel `.NET 8` build path specifically for macOS 11:

`Directory.Build.props`:`<BaseTargetFramework>` defaults to `net10.0`, while all cross-platform `.csproj` files target `$(BaseTargetFramework)`. The macOS CI job builds twice: once with `.dmg`) and once with `-p:BaseTargetFramework=net8.0` (`-macos11.dmg`).` v2.2.8`):` xattr -cr`), signing the full `.app` bundle with `codesign --force --deep --sign -`, verifying with `--strict`, and forcing `-fs HFS+` in `hdiutil create` so macOS 11 mounts and opens the DMG cleanly.`navigator.userAgentData.getHighEntropyValues(['architecture', 'platformVersion'])` (with a User-Agent fallback) to highlight `Updates.cs` checks `OperatingSystem.IsMacOSVersionAtLeast(12)` and pulls the matching `update.json`.` winget install LeandroCannizzaro.LiveClaude`
`.deb` / `.rpm` / one-liner):`curl -fsSL https://leandrocannizzaro.github.io/LiveClaude/install.sh | sh`
`curl -fsSL https://leandrocannizzaro.github.io/LiveClaude/install-macos.sh | sh`
Full User Manual & release notes: [https://leandrocannizzaro.github.io/LiveClaude/](https://leandrocannizzaro.github.io/LiveClaude/)

Source & issues: [https://github.com/LeandroCannizzaro/LiveClaude](https://github.com/LeandroCannizzaro/LiveClaude)

*(I'm the author of LiveClaude — feedback, PRs, and stars are welcome.)*
