Skip to content

2.34.1.2

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Jul 08:31
0b5240c

OpenTok.Net.iOS 2.34.1.2

Adds a second package and closes the last gap in the binding's coverage of the 2.34.1 headers. The
native SDK is unchanged at OTXCFramework 2.34.1.

New: OpenTok.Net.Transformers.iOS

Background blur, background replacement and audio noise suppression.

dotnet add package OpenTok.Net.Transformers.iOS

OTVideoTransformer and OTAudioTransformer have been in OpenTok.Net.iOS all along — but the
implementations live in a separate native library Vonage ships as its own pod
(VonageClientSDKVideoTransformersOpenTokTransformers.xcframework), which nothing shipped.
Constructing a transformer therefore compiled, linked, and then failed at runtime with

0x0A000006 — OTC_MEDIA_TRANSFORMER_OPENTOK_TRANSFORMERS_LIBRARY_NOT_LOADED

This package carries that framework. It has no managed API of its own and does not depend on the
binding — add it alongside, if you want the feature, for about 68 MB. See
src/OpenTok.Transformers.md for why it is separate, and why
it is the only project here with NoBindingEmbedding set (OpenTok.xcframework is a static
archive; this one is a dynamic framework).

The three TensorFlow Lite models it carries — selfie_segmentation.tflite, ns_model_1.tflite,
ns_model_2.tflite — are the ones that used to sit inside OpenTok.framework itself, which is why
the core package's payload roughly halved at SDK 2.3x.

Added: OTAudioSessionManager — CallKit

The only type in the 2.34.1 headers that was not bound. It is the protocol an app uses to hand
AVAudioSession control to CallKit:

var manager = OTAudioDeviceManager.CurrentAudioSessionManager;
manager?.EnableCallingServicesMode();
// ...then from CXProviderDelegate:
manager?.PreconfigureAudioSessionForCall(null);
manager?.AudioSessionDidActivate(session);
manager?.AudioSessionDidDeactivate(session);

Reached through the new OTAudioDeviceManager.CurrentAudioSessionManager. The SDK's own default
audio device implements it, so CallKit integration no longer requires writing a custom
OTAudioDevice.

Without this, an app that lets both CallKit and the SDK manage the audio session gets the two
fighting: audio that does not start on answer, or that stops when a second call arrives.

Fixed: the device-tests project targeted iOS 13.0

Left behind by the 2.34.1 bump, which raised the binding itself to 15.0. Corrected to match.

CI: Release builds now verify native linking

Two new jobs, on pull requests only — a release re-runs nothing, because the tagged commit already
passed them on its own PR:

  • device-link builds the sample in Release for ios-arm64. Every other job here builds
    Debug, which leaves the managed linker off and AOT unused, so none of them can notice a linker
    that removed a type reachable only through the Objective-C runtime — which every [Model]
    delegate subclass is. It also links the device slice, which nothing else does: the simulator
    legs stay green through a package whose device slice was empty or built for the wrong minimum OS.
    This is the shape of failure that let the previously published 2.27.1.701 ship without
    Network, Accelerate and CoreFoundation in its framework list.
  • transformers-link links the device tests against the transformers package and asserts
    OpenTokTransformers.framework is inside the .app bundle. A dynamic framework that is
    linked but not copied produces an app that launches and dies on first use with a dyld error.

Full changelog: v2.34.1.1...v2.34.1.2

Package

Bound against OTXCFramework 2.34.1 (CocoaPods trunk).

Package NuGet
OpenTok.Net.iOS 2.34.1.2