Changelog
Voximplant iOS SDK v3 changelog
3.4.0 (Oct 7, 2026)
Core (3.4.0)
Breaking Change: Raised minimum supported deployment targets to iOS 13.0 and macOS 11.5
Introduce file logging APIs to write SDK logs to a file on iOS and macOS:
Introduced VIAudioFile to play local audio files on iOS (such as ringtones, hold music, or sound effects). Audio playback is supported both independently and during active calls
- Create an audio player from a file URL or in-memory data, and manage playback using play(), playLooped(), pause(), and stop()
- Monitor playback state and audio session interruptions via VIAudioFileDelegate. Errors are reported through VIAudioFileError
Fixed an issue where the wrong audio device was selected during a call, causing the remote participant to receive no audio
Fixed an issue where audio played at an incorrect pitch during a CallKit call when connected to a Bluetooth headset
Calls (3.4.0)
Breaking Change: Raised minimum supported deployment targets to iOS 13.0 and macOS 11.5
Introduced VIVideoStreamLayerStats.qualityLimitationReason and the VIQualityLimitationReason enum to indicate whether the quality of an outgoing video stream layer is currently limited and, if so, the reason
API Change: The VIQualityPreset.low camera preset (352x288) is now available on iOS only. On macOS, use VIQualityPreset.medium or VIQualityPreset.high
Fixed an issue where VICameraDevice.changeResolution(to:) failed to apply the high camera preset on macOS
Fixed an issue where conference screen sharing could fail to start silently and prevent media transmission. The SDK now properly handles failure during screen sharing initiation and reports the error
Fixed an issue where in-app screen sharing sent a cropped, reduced image instead of the adapted resolution. VIInAppSharingVideoSource now transmits at the correct adapted size, including after device orientation changes
Fixed a compilation error ("Generic parameter 'Content' could not be inferred") when creating VIVideoRendererView without a custom content view. A renderer can now be instantiated using only a video stream and a resize mode
Fixed an issue where the remote participant did not receive video after VICall.startSendingVideo(with:completion:) was called
Fixed an issue where video failed to send after resuming a peer-to-peer call from hold
Fixed an issue where calls connected via the Voximplant Cloud failed to reconnect upon network changes
Messaging (3.4.0)
The Messaging module is no longer part of the public SDK API. It remains in the package but is not documented or supported for application development
Framework binary size (before App Thinning)
Framework | iOS | iOS Simulator | macOS |
VoximplantCalls | 1.78 MB | 3.51 MB | 3.37 MB |
VoximplantCore | 1.03 MB | 2.02 MB | 1.50 MB |
VoximplantWebRTC | 9.22 MB | 21.78 MB | 23.23 MB |
3.3.0 (Jul 22, 2026)
Core (3.3.0)
Fixed a crash that occurred when invoking delegate methods
Fixed a no-audio issue upon taking a call off hold, occurring specifically when using CallKit integration
Fixed an issue where rapidly answering a call with a connected Bluetooth headset resulted in distorted audio
Logs improvements
Calls (3.3.0)
Introduced the VIInAppSharingVideoSourceDelegate.inAppSharingVideoSourceDidPause(_:) delegate method to notify the application when in-app screen sharing is interrupted
Fixed an issue where the VICallDelegate.call(_:didDisconnectWithReason:headers:) and VIConferenceDelegate.conference(_:didDisconnectWithReason:headers:) delegate methods are not invoked if the call or conference instance is no longer retained by the application
Fixed an issue where the local video stream is not rendered when a call or a conference starts
Fixed an issue where audio is not muted in a call if the VICall.muteAudio(_:) API is called before the call has started
Framework binary size (before App Thinning)
Framework | iOS | iOS Simulator | macOS |
VoximplantCalls | 1.69 MB | 3.35 MB | 3.20 MB |
VoximplantCore | 955.1 KB | 1.87 MB | 1.42 MB |
VoximplantMessaging | 703.8 KB | 1.37 MB | 1.39 MB |
VoximplantWebRTC | 9.22 MB | 21.78 MB | 23.23 MB |
3.2.0 (Jul 3, 2026)
Core (3.2.0)
Introduce VINode.node13
Bluetooth A2DP devices support
API change: rename the optional group parameter to bundleId in the following APIs:
Fix: audio routes incorrectly to a device even if the VIAudioManager.currentDevice API indicates a different audio output selected.
Fix: VIAudioManager.currentDevice fails to update and match the active audio device selected via CallKit UI
Fix: distorted or incorrect audio pitch during a call with a connected Bluetooth device
Fix: VIAudioManager.deviceList still contains a Bluetooth device after it disconnects
Calls (3.2.0)
New APIs to handle upgrading an audio-only call to a video call. These APIs provide full control to accept incoming video, accept and send a local video stream, or decline the upgrade and keep the call audio-only:
API change: the VICallDelegate.call(_:didConnectWithVideo:headers:) delegate method is updated to include the call's video negotiation status.
Fix: VIVideoRendererUIView fails to apply the VIVideoResizeMode.fill mode specified at initialization.
Fix: the VIEndpointDelegate.endpoint(_:didChangeMuteStatus:) delegate method is not triggered when a new participant joins a conference with their audio muted
Fix: compatibility improvements for video calls with the Voximplant Web SDK v4 and Android/iOS SDK v2
Improvements for calls and conferences reconnection functionality
Framework binary size (before App Thinning)
Framework | iOS | iOS Simulator | macOS |
VoximplantCalls | 1.69 MB | 3.33 MB | 3.20 MB |
VoximplantCore | 937.8 KB | 1.85 MB | 1.41 MB |
VoximplantMessaging | 703.8 KB | 1.37 MB | 1.39 MB |
VoximplantWebRTC | 9.22 MB | 21.78 MB | 23.23 MB |
3.1.0 (Feb 20, 2026)
Core (3.1.0)
Introduce VINode.node12
Stability improvements for the connection establishment process
Calls (3.1.0)
Dependency update: VoximplantWebRTC is updated to 144.0.0
Introduce the VILocalVideoStream.size, VIRemoteVideoStream.size, and VIVideoStream.size APIs to obtain the local/remote video frame resolution
Fix: compatibility improvements for video calls with the Voximplant Web SDK v4
Fix: video is not sent when the application is moved to the foreground if a video call has been answered via the CallKit UI on the lock screen
Fix: incorrect value of the "disconnectReason" parameter in the VICallDelegate.call(_:didDisconnectWithReason:headers:) event in some cases
Fix: VICallSettings.customData is not correctly sent to a VoxEngine scenario
Fix: audio is not sent to a conference if only one participant has joined the conference
Fix: VICallDelegate.call(_:didAddRemoteVideoStream:) and VICallDelegate.call(_:didRemoveRemoteVideoStream:) events are incorrectly triggered in several cases
Improvements for calls and conferences reconnection functionality
3.0.1 (Nov 18, 2025)
Core (3.0.1)
Stability improvements
Calls (3.0.1)
Fix: ending a conference with screen sharing does not release all screen sharing resources. This results in the system screen capture indicator remaining on the device.
Fix: incorrect value of the "reason" parameter in the call(_:didDisconnectWithReason:headers:) event in some cases
Fix: call does not end if the connection to the Voximplant cloud is lost while the call is in the disconnecting state
Stability improvements
Messaging (3.0.1)
Fix: the VIMessengerDelegate delegate does not trigger any event until any VIMessenger API is called
3.0.0 (Oct 6, 2025)
Separate frameworks for core, calls, and messaging
Swift API with Objective-C compatibility
macOS support
VoximplantWebRTC is updated to 134.0.0
Separate VICall and VIConference interfaces
SwiftUI video renderer
Local video stream can be created and rendered before a call or a conference is started