Keep managed iOS audio active in background
.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:
@@ -40,8 +40,16 @@ clients/apple/dotnet/deploy-ios-device.sh --device "My iPhone" --configuration D
|
||||
The build stages the verified app at `dist/ios-managed-device/VoiceCat.iOS.app`. Pass
|
||||
`--no-build` to the deployment script for quick reinstall cycles. On iOS 18–26, screen audio
|
||||
uses the retained ReplayKit extension. On iOS 27 and newer, the host uses a small dynamically
|
||||
loaded ScreenCaptureKit bridge and writes the same versioned ring; this keeps one managed consumer and
|
||||
allows the app to remain launchable on older supported systems.
|
||||
loaded ScreenCaptureKit bridge and writes the same versioned ring; the Settings row toggles
|
||||
that capture on and off. This keeps one managed consumer and allows the app to remain launchable
|
||||
on older supported systems.
|
||||
|
||||
While joined to voice, the active `PlayAndRecord` session and audio engine remain running when
|
||||
the scene backgrounds or the device locks, which keeps microphone capture, peer playback and the
|
||||
screen-audio pump eligible for the declared `audio` background mode. Foreground activation,
|
||||
hardware route changes, audio interruptions and media-service resets revalidate or rebuild the
|
||||
audio graph. Validate this behavior on hardware: iOS simulator lifecycle transitions do not prove
|
||||
background execution, lock-screen routing or Bluetooth recovery.
|
||||
|
||||
Profiles, TOFU state, passwords and the ReplayKit ring use the signed App Group `group.me.iamtalon.voicecat`; the managed client migrates the old app-private profile files on first use. The shared ring ABI is frozen in [`docs/broadcast-ring-format.md`](../../../docs/broadcast-ring-format.md).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user