Skip to main content

iOS SDK Releases

ECV 1.75 iOS SDK — Release Notes

Upgrade notes

Read these before moving from 1.0.20.0 — they change behavior you may already depend on.

  • Parallel calls are now blocked by default (since 1.0.21.24). Starting a call automatically hangs up any other live VideoCall on the same SDK instance. If your app intentionally runs more than one call at a time, set ECVSdkConfiguration(allowMultipleParallelCalls: true).
  • Photo mode now boosts video resolution by default (since 1.2.0.183). While the agent has photo mode active the outgoing stream switches to 1080×1440. Set photoModeVideoBoostEnabled: false in ConnectParameters to keep the old behavior. Any custom photoModeVideoWidth/photoModeVideoHeight must keep the same aspect ratio as videoWidth/videoHeight — a different ratio changes the scaled output size mid-file and fails the recording encode.
  • The back camera now opens as the multi-lens virtual device by default (since 1.2.0.183). Set preferMultiCamDevice: false to force the plain wide-angle camera.

1.2.0.208 — 28-07-2026

Fixed

  • Torch/flashlight froze the call. Toggling the flashlight could freeze the capture session (black or stuck video) on some iOS versions. The torch was driven through a separate AVCaptureDevice instance of the same hardware while a virtual multi-cam device owned the session; it is now driven through the actively capturing camera whenever that camera has a torch. Most visible on iPhone Pro models, where preferMultiCamDevice opens the virtual device. (de423288)
  • Audio stayed dead after an interruption. After an incoming phone call, Siri, or any other system interruption, iOS deactivates the audio session and does not reactivate it — the call continued with no audio in either direction. The SDK now reactivates the session itself when the interruption ends. (31622ea3)
  • Audio session delegate callbacks never fired. The RTCAudioSessionDelegate methods were declared with Swift signatures that did not match the underlying Objective-C selectors. Because the protocol methods are optional, they were silently never called, so route changes and interruptions went unobserved. Corrected — this is what makes the interruption recovery above possible, and route changes are now visible in the logs. (31622ea3)

Changed

  • Bluetooth routing for earpiece calls. When not using the speakerphone, the audio session mode is now .voiceChat instead of .default. This enables Apple's voice processing (echo cancellation, etc.) and makes iOS prefer the Bluetooth HFP route, fixing calls that stayed on the phone's earpiece while a Bluetooth headset was connected. (31622ea3)
  • photoModeMaintainResolution now defaults to false (was true). Photo mode uses WebRTC's standard balanced degradation — on a poor connection both resolution and framerate may drop — instead of holding resolution and sacrificing framerate. Note this flip was committed as part of the 1.2.0.183 release commit but built after that binary, so 1.2.0.208 is the first release to ship it. (5b6b5a72)

1.2.0.183 — 17-07-2026

Added

  • Photo-mode video quality boost. While the agent has photo mode active (TAKEPHOTO_ON) the outgoing stream switches to a higher resolution, and switches back on TAKEPHOTO_OFF. The camera is opened at a format large enough for the photo-mode resolution and the normal call is downscaled to videoWidth×videoHeight, so there is no renegotiation or camera restart at the switch. New ConnectParameters: (9f43bad7, 12edd3b2)

    Parameter Default Purpose
    photoModeVideoBoostEnabled true Master switch; false restores pre-boost behavior
    photoModeVideoWidth / photoModeVideoHeight 1080 / 1440 Resolution sent during photo mode; 0 width disables
    photoModeVideoMaxBitrate 0 Max bitrate during photo mode; 0 leaves it untouched
    photoModeMaintainResolution true Hold resolution and drop framerate on poor connections
    photoModeMinFps 10 Framerate floor before falling back to balanced degradation
    photoModeRecoverFps 25 Framerate at which maintain-resolution is retried

    Keep photoModeVideoWidth×photoModeVideoHeight at the same aspect ratio as videoWidth×videoHeight (both default to 3:4).

  • preferMultiCamDevice (ConnectParameters, default true). Opens the back camera as the multi-lens virtual device (triple / dual-wide) when available so iOS can switch to the macro-capable lens for close subjects. Set to false for the plain wide-angle back camera. (bb346080)

  • autoFocusForDocumentCapture (ConnectParameters, default true). While photo mode is active, restricts the back camera's autofocus to the near range and disables smooth (video-style) focus, so focus locks quickly on a document lying on a table instead of hunting to the background. Reset when photo mode ends. (bb346080)

Fixed

  • Blurry ID and document photos on iPhone Pro models. Their main camera cannot focus closer than roughly 20 cm, and the SDK always selected it. With preferMultiCamDevice the system now switches to the macro-capable lens automatically. (bb346080)

Changed

  • Faster signaling reconnection. The WebSocket reconnect backoff now starts at 100 ms instead of 1000 ms, with a factor of 3.0 instead of 2.0 (max delay unchanged at 30 s). Brief network drops recover noticeably faster. (86592d3b)

1.2.0.33 — 27-03-2026

Fixed

  • Dial requests rejected because of the caller name. The Referer header sent when dialing embedded dialCallParameters.callerName verbatim in the query string, so names containing spaces or special characters produced a malformed referrer and the request could be rejected. The header now uses a constant ?user=iossdk. (a8a55772)

1.0.21.24 — 26-01-2026

Added

  • allowMultipleParallelCalls (ECVSdkConfiguration, default false). When false, starting a call hangs up any other VideoCall on the same SDK instance that has not already hung up, preventing an abandoned call from holding the camera, microphone, and queue slot. Set to true to keep the previous behavior. (22670d3e)
  • VideoCall.didHangUp — public flag telling you a call has been hung up. Also used internally so the queue and wait-for-room loops exit immediately on hangup instead of running until their timeout. (22670d3e)

Fixed

  • Remote mute commands honored on ECV 1.5 calls. The remote VIDEO_MUTE / VIDEO_UNMUTE / AUDIO_MUTE / AUDIO_UNMUTE text-channel commands are ECV 1.75-specific, but were being acted on for any call. They are now only handled when the rtcId is at least 32 characters, which identifies a 1.75 call. (This check is temporary and will be removed once ECV 1.5 is retired.) (821ea8a4)

1.0.20.0.60-e71dc8b3

  • Improved remote audio-video muting/unmuting's backward compatibility
File Algorithm Hash
SHA256

167571794e1023ee354f3bfcfa7a4174eaea67263a263b836aef4dea956bae1f


1.0.19.142.5-8c33b978

  • Improved the code to support iPhone 17 and above
File Algorithm Hash

ECV175_iOS_SDK-1.0.19.142.5-8c33b978.xcframework.zip

SHA256

4c0e4d9b5f897c52e5374aa253e089947a383be970b73abb01665d14015d33ef

1.0.19.90.40-0c1268e8

  • Changed Call attribute 'Mobile' to 'iOS'
  • Added CameraSwitched event

Files

ECV175_iOS_SDK-1.0.19.90.40-0c1268e8.xcframework.zip

File Algorithm Hash

ECV175_iOS_SDK-1.0.19.90.40-0c1268e8.xcframework.zip

SHA256

10650ce8dd1a74209cbef723eb1847c19726ef0f57dbb2707e073e0b7b53bdcc



1.0.19.27-07a71ba7

  • Supported dSYM inside .xcframework

Files

ECV175_iOS_SDK-1.0.19.27-07a71ba7.xcframework.zip

File Algorithm Hash

ECV175_iOS_SDK-1.0.19.27-07a71ba7.xcframework.zip

SHA256

d7326cb654da587de1d13b39e57615a47660c90f4879bfb2a852737d20e150cf

1.0.19.23-74fe0926

  • Fixed (Physically not needed) WebRTC.xcframework inside ECV SDK (.xcframework Duplication issue solved)

Files

ECV175_iOS_SDK-1.0.19.23-74fe0926.xcframework.zip

File Algorithm Hash

ECV175_iOS_SDK-1.0.19.23-74fe0926.xcframework.zip

SHA256

4ae2dfebfdb5aef8fdf9aa45b1f5dfb1148ce0e8f27d78c2771a5703db775780

1.0.18-113-gea4fd191

  • Fixed local network permission prompt on call first connected.
Files

ECV175_iOS_SDK-1.0.18-113-gea4fd191.xcframework.zip

File Algorithm Hash

ECV175_iOS_SDK-1.0.18-113-gea4fd191.xcframework.zip

SHA256

5bfeb67dced0955affb303fb1e4044447d74165017ad85cbda962c8b91208136


1.0.18-104-g4e528016

  • Fixed .StartHold and .EndHold events not sent when connectParams.autoHandleHoldSideEffects is set to false.
Files

ECV175_iOS_SDK-1.0.18-104-g4e528016.xcframework.zip

File Algorithm Hash
ECV175_iOS_SDK-1.0.18-104-g4e528016.xcframework.zip SHA256 6b0741bfbd34eac23df2f012c18977ef52ed067cda23e587d5adf000d3a48887

Old Versions

1.0.18-77

ECV175_iOS_SDK-ing-1.0.18-77-g3ae1e69b.xcframework.zip

1.0.18-62

ECV175_iOS_SDK.iOS12-noCrash.xcframework.zip


1.0.18-42

Built with XCode 16.4 + Swift 5 + BUILD_LIBRARY_FOR_DISTRIBUTION=YES

ECV175_iOS_SDK.1.0.18-42-gfdf194ee.xcframework.zip


1.0.18-48

ECV175_iOS_SDK-1.0.18-48.xcframework.zip

Requirements
  1. Minimum iOS 13.0
  2. M134 (WebRTC.xcframework)