Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Changelog: Twilio Video iOS Latest


(warning)

Warning

This documentation is for reference only. We are no longer onboarding new customers to Programmable Video. Existing customers can continue to use the product until December 5, 2026(link takes you to an external page).

We recommend migrating your application to the API provided by our preferred video partner, Zoom. We've prepared this migration guide(link takes you to an external page) to assist you in minimizing any service disruption.

(warning)

Warning

The Twilio Programmable Video SDKs use Semantic Versioning(link takes you to an external page). Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 5.x is the latest Video iOS version.

Support for 4.x will cease on February 14th, 2023. This branch will only receive fixes for critical issues until that date. Check this guide when planning your migration to 5.x.

Support for iOS SDK version 3.x ended on December 4, 2021.

(information)

Info

To ensure your account has the most up-to-date features and bug fixes, we recommend updating your Twilio Video SDK at least once a quarter.

The Twilio Programmable Video SDKs use Semantic Versioning(link takes you to an external page).


5.8.1 (April 19, 2024)

581-april-19-2024 page anchor
  • Programmable Video iOS SDK 5.8.1 [XCFramework](link takes you to an external page) (checksum: 39ea1c10856e7b3019f0311b34d97a149074c8db79fd6e59618399d592919245).

Enhancements

  • The SDK now includes the privacy manifest in the XCFramework. The SDK collects analytic data such as WebRTC stats when the insightsEnabled property is enabled in TVIConnectOptions . The required reason APIs(link takes you to an external page) included in the privacy manifest are for internal usage by WebRTC and are not used directly by the Video SDK.
  • The SDK XCFramework is now signed with Twilio's distribution signature.

Known Issues

Size Report

ArchitectureCompressed SizeUncompressed Size
Universal6.0 MB20.4 MB
arm646.0 MB20.4 MB

5.8.0 (February 28, 2024)

580-february-28-2024 page anchor

Enhancements

  • This version contains 'VideoTrackStoringSampleBufferVideoView' class which simplifies the implementation of Picture in Picture.
  • This release is based on Chromium WebRTC 112.
  • iSAC Codec is no longer supported.

Known Issues

Size Report

ArchitectureCompressed SizeUncompressed Size
Universal6.0 MB20.4 MB
arm646.0 MB20.4 MB

5.7.1 (November 1, 2023)

571-november-1-2023 page anchor

This release is now available through CocoaPods again as we have resolved the issue.

Bug Fixes

  • Updated documentation for didFailToPublishVideoTrack callback.

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal6.3 MB21.2 MB
arm646.3 MB21.2 MB

5.7.0 (June 29, 2023)

570-june-29-2023 page anchor

This release adds the possibility to enable camera multitasking for a video session.

Enhancements

  • Camera multitasking allows users to continue broadcasting their camera even if the video application is put to background.

Limitations

This feature is supported on a limited set of devices:

  • iPad Pro (4th generation)
  • iPad Pro (5th generation)
  • iPad Air (5th generation)

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal6.3 MB21.2 MB
arm646.3 MB21.2 MB

5.6.0 (March 28, 2023)

560-march-28-2023 page anchor

This release is not available through CocoaPods because CocoaPods has incorrectly removed the ownership of this project from Twilio. We will publish the pod for this release as soon as the ownership issue is resolved.

Enhancements

  • This release now uses WebRTC-m105

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal6.3 MB21.2 MB
arm646.3 MB21.2 MB


5.5.0 (January 5, 2023)

550-january-5-2023 page anchor

Bug Fixes

  • The following thread performance checker warning has been resolved

"Thread Performance Checker: -[AVCaptureSession startRunning] should be called from background thread. Calling it on the main thread can lead to UI unresponsiveness"

Maintenance

"Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14."

"Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: "Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode." The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols can only be downloaded from App Store Connect / TestFlight for existing bitcode submissions and are no longer available for submissions made with Xcode 14. (86118779)"

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal5.7 MB19.1 MB
arm645.7 MB19.1 MB


5.4.0 (November 29, 2022)

540-november-29-2022 page anchor

Features

  • This release introduces support for a noise cancellation audio device, NoiseCancellationProcessor via a new TwilioAudioProcessors SDK

API Changes

  • TVIAudioDeviceFormatChanged method is now marked as deprecated and will raise a warning to use TVIAudioDeviceReinitialize instead. The API will be removed in v6.0+.

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal4.7 MB10.9 MB
arm644.7 MB10.9 MB


5.3.0 (November 7, 2022)

530-november-7-2022 page anchor

Enhancements

The following code, from our Twilio Video iOS App(link takes you to an external page), illustrates implementing picture in picture using SampleBufferVideoView:


_37
class PictureInPictureViewController: UIViewController {
_37
_37
@IBOutlet weak var videoView: VideoView!
_37
_37
private var pipController: AVPictureInPictureController!
_37
private var pipVideoCallViewController: AVPictureInPictureVideoCallViewController!
_37
_37
override func viewDidLoad() {
_37
let sampleBufferVideoCallView = SampleBufferVideoView()
_37
sampleBufferVideoCallView.contentMode = .scaleAspectFit
_37
_37
pipVideoCallViewController = AVPictureInPictureVideoCallViewController()
_37
pipVideoCallViewController.preferredContentSize = CGSize(width: 1080, height: 1920)
_37
pipVideoCallViewController.view.addSubview(sampleBufferVideoCallView)
_37
_37
sampleBufferVideoCallView.translatesAutoresizingMaskIntoConstraints = false
_37
let constraints = [
_37
sampleBufferVideoCallView.leadingAnchor.constraint(equalTo: pipVideoCallViewController.view.leadingAnchor),
_37
sampleBufferVideoCallView.trailingAnchor.constraint(equalTo: pipVideoCallViewController.view.trailingAnchor),
_37
sampleBufferVideoCallView.topAnchor.constraint(equalTo: pipVideoCallViewController.view.topAnchor),
_37
sampleBufferVideoCallView.bottomAnchor.constraint(equalTo: pipVideoCallViewController.view.bottomAnchor)
_37
]
_37
NSLayoutConstraint.activate(constraints)
_37
_37
_37
sampleBufferVideoCallView.bounds = pipVideoCallViewController.view.frame
_37
_37
let pipContentSource = AVPictureInPictureController.ContentSource(
_37
activeVideoCallSourceView: videoView,
_37
contentViewController: pipVideoCallViewController
_37
)
_37
_37
pipController = AVPictureInPictureController(contentSource: pipContentSource)
_37
pipController.canStartPictureInPictureAutomaticallyFromInline = true
_37
pipController.delegate = self
_37
}
_37
}

Please note that the render hints are not supported in picture in picture mode except for the track switch on and off hints when the SampleBufferVideoView renderer is added and removed from the RemoteVideoTrack respectively. As a result when the app is in the background and in picture in picture mode, the displayed RemoteVideoTrack will still be active (e.g Dominant Speaker track), consuming bandwidth, and it will have the default spatial dimension determined by the media server.

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal4.7 MB10.9 MB
arm644.7 MB10.9 MB


5.2.1 (September 30, 2022)

521-september-30-2022 page anchor

Bug Fixes

  • Fixed a bug in Adaptive Simulcast where processing of capturer parameter change events was causing a crash and debug check failure. [VIDEO-11409]

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal4.7 MB10.9 MB
arm644.7 MB10.9 MB


5.2.0 (August 24, 2022)

520-august-24-2022 page anchor

Bug Fixes

  • Max video bandwidth limits are now applied to each simulcast layer when simulcast is enabled, and the expected behavior for max video bitrates with simulcast is better documented.
  • Fixed several bugs that could cause crashes and deadlocks when a Room is disconnected / destroyed.
  • Fixed a use-after-free bug associated with tasks posted to TaskQueue that could lead to undefined behavior.
  • Fixed a bug which could cause a crash in IceConnectionActivityMonitor when reconnecting to or disconnecting from a Room.
  • Fixed a race condition where subscribed callbacks for Remote Participant could be raised for tracks that have been ended.

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal4.7 MB10.9 MB
arm644.7 MB10.9 MB


5.1.1 (July 5, 2022)

511-july-5-2022 page anchor

Bug Fixes

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal4.8 MB11.4 MB
arm644.8 MB11.4 MB


5.1.0 (March 14, 2022)

510-march-14-2022 page anchor

Features

  • This release introduces Adaptive Simulcast along with new Video Encoding modes for publishers. Adaptive Simulcast reduces publisher resource usage by only sending those encodings for a video track that are needed by subscribers or by the media server (when recording is enabled). This is an opt-in feature and can be enabled by setting the new Connect Option videoEncodingMode to auto , which allows the SDK to select video codecs, use adaptive simulcast and manage encodings automatically. This feature cannot be used alongside EncodingParameters.maxVideoBitrate .

API Changes

  • Added the videoEncodingMode property to ConnectOptions .
  • The videoEncodingMode API is mutually exclusive with existing codec management APIs EncodingParameters.maxVideoBitrate and preferredVideoCodecs .

Known Issues

Size Impact

ArchitectureCompressed SizeUncompressed Size
Universal4.8 MB11.4 MB
arm644.8 MB11.4 MB


5.0.0 (February 14, 2022)

500-february-14-2022 page anchor

Maintenance

  • The minimum iOS version supported is 12.2.
  • This release is built with Xcode 13.

Enhancements

  • Microphone access will only be requested when recording audio and publishing an audio track.

Notes

Bug Fixes

  • Fixed a bug which could occur when connected to a Peer-to-Peer or Go Room and publishing a second video track before another Participant joins, causing the connection to be terminated or the second video track not to be fully established.
  • Fixed a bug which could cause the Room connection to be terminated by the server.
  • Fixed a bug which could cause the media connection not to be re-established after network changes.
  • Fixed a bug where audio fails to start in the iOS Simulator on M1 Mac Mini when no microphone is present.

Known Issues

ArchitectureCompressed SizeUncompressed Size
Universal4.8 MB11.3 MB
arm644.8 MB11.3 MB

Rate this page: