Extend managed macOS client toward feature parity
.NET port / test (macos-latest) (push) Canceled after 0s
.NET port / test (ubuntu-24.04) (push) Canceled after 0s
.NET port / test (windows-latest) (push) Canceled after 0s
.NET port / apple-client (push) Canceled after 0s
.NET port / cpp-conformance (push) Canceled after 0s
.NET port / test (macos-latest) (push) Canceled after 0s
.NET port / test (ubuntu-24.04) (push) Canceled after 0s
.NET port / test (windows-latest) (push) Canceled after 0s
.NET port / apple-client (push) Canceled after 0s
.NET port / cpp-conformance (push) Canceled after 0s
This commit is contained in:
+36
-4
@@ -29,7 +29,8 @@ and *how to drive the binaries by hand*.
|
||||
| Server + `vccli` + tests (all platforms) | [§3](#3-build--test-the-loop-youll-run-constantly) | `cmake --preset dev && cmake --build --preset dev && ctest --preset dev` |
|
||||
| Production server (stripped, no tests) | [§5](#5-server-release-production-shaped-build) | `cmake --preset server-release && cmake --build --preset server-release` |
|
||||
| Windows client (C# / WinForms) | [§7](#7-windows-client-c--winforms) | `dotnet build clients/windows/VoiceCat.slnx` |
|
||||
| macOS client (AppKit) | [§8](#8-macos-client-appkit) | `scripts/build-macos-client.sh` |
|
||||
| Managed macOS client (C# AppKit) | [§8](#8-macos-client-appkit) | `dotnet build clients/apple/dotnet/VoiceCat.Apple.slnx` |
|
||||
| Swift macOS migration oracle | [§8](#8-macos-client-appkit) | `scripts/build-macos-client.sh` |
|
||||
| iOS client (SwiftUI / simulator) | [§9](#9-ios-client-swiftui) | `scripts/build-ios-client.sh` |
|
||||
| Launch iOS app on simulator | [§9](#9-ios-client-swiftui) | `scripts/run-ios-simulator.sh` |
|
||||
| Swift core + tests | [§8](#8-macos-client-appkit) | `cd clients/apple && swift test` |
|
||||
@@ -321,9 +322,40 @@ dotnet test clients/windows/VoiceCat.slnx
|
||||
|
||||
## 8. macOS client (AppKit)
|
||||
|
||||
The macOS client is an Xcode project (AppKit / Swift) that links `libvoicecat` via the
|
||||
`VoiceCatCore` Swift Package, which consumes a binary XCFramework target. Full details in
|
||||
[`clients/apple/README.md`](../clients/apple/README.md).
|
||||
The replacement client is a C# AppKit application that consumes the managed core and the
|
||||
small Opus/RNNoise media shim. The Swift/Xcode app remains the migration oracle until the
|
||||
managed app passes its VoiceOver, live-call and notarization gates. Managed-client details are
|
||||
in [`clients/apple/dotnet/README.md`](../clients/apple/dotnet/README.md); Swift-oracle details
|
||||
remain in [`clients/apple/README.md`](../clients/apple/README.md).
|
||||
|
||||
**Managed prerequisites:** Xcode 27, .NET SDK/workload set 10.0.401, Homebrew `protobuf`, and
|
||||
macOS 14+ (the current bindings target `net10.0-macos27.0`).
|
||||
|
||||
### Build and validate the managed app
|
||||
|
||||
```bash
|
||||
cmake -S dotnet/native -B dotnet/artifacts/native-build \
|
||||
-DCMAKE_BUILD_TYPE=Release -DVOICECAT_DOTNET_RID=osx-arm64
|
||||
cmake --build dotnet/artifacts/native-build --config Release \
|
||||
--target voicecat_media --parallel 2
|
||||
cmake --install dotnet/artifacts/native-build --config Release \
|
||||
--component DotnetMedia --prefix dotnet/artifacts/native
|
||||
dotnet restore clients/apple/dotnet/VoiceCat.Apple.slnx
|
||||
dotnet build clients/apple/dotnet/VoiceCat.Apple.slnx -c Debug
|
||||
open clients/apple/dotnet/VoiceCat.Mac/bin/Debug/net10.0-macos27.0/osx-arm64/VoiceCat.app
|
||||
```
|
||||
|
||||
Produce a Release bundle and verify its complete ad-hoc signature graph with:
|
||||
|
||||
```bash
|
||||
zsh clients/apple/dotnet/publish-macos.sh --dry-run
|
||||
```
|
||||
|
||||
For distribution, set `VOICECAT_CODESIGN_IDENTITY` to a Developer ID Application identity.
|
||||
Setting `APPLE_ID`, `APPLE_TEAM_ID`, and `APPLE_APP_PASSWORD` also submits the archive for
|
||||
notarization, staples it, and runs Gatekeeper assessment.
|
||||
|
||||
### Build the Swift migration oracle
|
||||
|
||||
**Prerequisites:** Xcode, vcpkg (`VCPKG_ROOT` set), macOS 14+ (deployment target).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user