2.34.1.1
OpenTok.Net.iOS 2.34.1.1
Moves the vendored SDK from OTXCFramework 2.27.1 to 2.34.1, bringing this package level with
OpenTok.Net.Android, which already binds
opentok-android-sdk 2.34.1. The two platforms of one product had drifted seven minor releases
apart.
This release is breaking in three ways, each described below.
Breaking: minimum iOS is now 15.0
OTXCFramework 2.34.1's podspec declares "platforms": {"ios": "15.0"}, up from 13.0. That is the
SDK's floor, not a choice made here. An app targeting iOS 13 or 14 cannot take this package — stay
on 2.27.1.701.
Breaking: OTVideoViewScaleBehavior members are renamed
The members were called t and ll — an Objective Sharpie prefix-stripping artifact, not names
anyone could reasonably have chosen. They are now Fit and Fill, matching
OTVideoViewScaleBehaviorFit and OTVideoViewScaleBehaviorFill in OTVideoKit.h. The numeric
values are unchanged (Fit is 0, Fill is 1), so only source needs updating.
Note that Fit being 0 does not make it the default: the SDK documents and sets Fill.
Breaking: delegate callbacks are typed OTPublisherKit / OTSubscriberKit
OTPublisherKitDelegate and OTSubscriberKitDelegate previously declared their callbacks over the
concrete OTPublisher and OTSubscriber. The headers declare the Kit base types, and the
difference is real rather than cosmetic: a screen-share publisher is constructed as a bare
OTPublisherKit, and a subscriber driving a custom OTVideoRender as a bare OTSubscriberKit, so
a delegate typed over the subclass could not receive either.
Consequently OTSubscriberKit is now bound as its own type rather than folded into OTSubscriber,
and OTSession.Subscribe/Unsubscribe take OTSubscriberKit. An existing OTSubscriber still
satisfies them.
Override signatures need updating:
-public override void DidFailWithError(OTPublisher publisher, OTError error)
+public override void DidFailWithError(OTPublisherKit publisher, OTError error)
-public override void DidConnectToStream(OTSubscriber subscriber)
+public override void DidConnectToStream(OTSubscriberKit subscriber)Fixed: missing enum members
OTPublisherVideoEventReason was missing None, QualityDegradationBandwidth,
QualityDegradationCPU, QualityDegradationOther, CodecChange and ResolutionChange;
OTSubscriberVideoEventReason was missing None, CodecChange, ResolutionChange and
VideoInterruption. The SDK sends all of these, so a callback carrying one arrived as an enum value
with no name.
Several error codes were also missing: SessionUnableToForceDisconnect (1520),
SessionUnableToSendSignal (1550), EncryptionUnsupportedCodec (6005),
OTSubscriberPeerConnectionNotConnected (1606) and DecryptionUnsupportedCodec (6006).
Fixed: constructors that could not work
OTSession, OTPublisherKit and OTSubscriberKit all declare - init NS_UNAVAILABLE, but the
binding emitted a parameterless constructor for each anyway. new OTSession() compiled and then
trapped at runtime. They now carry [DisableDefaultCtor], so the call no longer compiles.
Added: the 2.34 API surface
OTVideoCodecPreferencewithOTVideoCodecType, andOTPublisherKitSettings.VideoCodecPreferenceOTVideoBitratePresetandOTPublisherKit.MaxVideoBitrate/VideoBitratePresetOTDegradationPreferenceandOTPublisherKit.DegradationPreferenceOTPublisher.CameraTorchandCameraZoomFactorOTPublisherKitSettings.SenderStatsTrackandAllowAudioCaptureWhileMutedOTSubscriberKit.CaptionsTranslationLanguageOTSession.ForceDisconnect,OTSessionCapabilities.CanForceDisconnectOTSessionSettings.SinglePeerConnectionandSessionMigration,
OTSessionICEConfig.FilterOutLanCandidates- Media-link statistics:
OTTransportStats,OTSenderStats,OTPublisherKitMediaLinkStats,
OTSubscriberKitMediaLinkStats,OTPublisherKitVideoLayerStats, withOTNetworkReason,
OTNetworkConditionandOTNetworkDegradationSource, and the newvideoQualityChanged:,
networkConditionChanged:andmediaLinkStatsUpdated:callbacks on both network-stats delegates OTAudioTransformer.initWithName:properties:
OTSubscriberKit.GetRtcStatsReport gained an out OTError overload; the no-argument form is
deprecated by the SDK and is marked [Obsolete] here.
Package size
The payload roughly halved — ~25 MB compressed, from ~52 MB. The ML video transformers, and the
TensorFlow Lite model that made the framework so large, moved out of OpenTok.framework into a
separate OpenTokTransformers library this package does not bind. The package now carries
PrivacyInfo.xcprivacy and VonageWebRTC_Privacy.bundle instead, both required for App Store
review.
Version numbering
The revision restarts at 1. It sat at 702 because the predecessor monorepo published up to
2.27.1.701 under this package ID and NuGet resolves the highest version regardless of publisher;
moving the SDK to 2.34.1 lifts the first three components clear of everything published, so
2.34.1.1 already sorts above them all.
Package
Bound against OTXCFramework 2.34.1 (CocoaPods trunk).
| Package | NuGet |
|---|---|
OpenTok.Net.iOS |
2.34.1.1 |