Swiftpack.co -  twilio/twilio-video-ios as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Programmable Video SDK by Twilio
.package(url: "https://github.com/twilio/twilio-video-ios.git", from: "v2.0.0-preview9")

Twilio Programmable Video for iOS

This repository contains releases of Twilio's Programmable Video SDK for iOS. These releases can be consumed using Swift Package Manager, CocoaPods or manual integration into your project.

NOTE: If you are updating your application for iOS 13 and iPadOS 13 please read our iOS 13 Migration Guide.

Swift Package Manager

You can add Programmable Video for iOS by adding the https://github.com/twilio/twilio-video-ios repository as a Swift Package.

In your Build Settings, you will also need to modify Other Linker Flags to include -ObjC.

As of the latest release of Xcode (currently 12.3), there is a known issue with consuming binary frameworks distributed via Swift Package Manager. The current workaround to this issue is to add a Run Script Phase to the Build Phases of your Xcode project. This Run Script Phase should come after the Embed Frameworks build phase. This new Run Script Phase should contain the following code:

find "${CODESIGNING_FOLDER_PATH}" -name '*.framework' -print0 | while read -d $'\0' framework
    codesign --force --deep --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements --timestamp=none "${framework}"

CocoaPods Integration

We support integration using CocoaPods as well. You can add Programmable Video to your project using the following example Podfile:

source 'https://github.com/CocoaPods/Specs'

platform :ios, '9.0'

target 'TARGET_NAME' do
    pod 'TwilioVideo', '~> 4.4'

Then run pod install to install the dependencies for your project.

Manual Integration

See manual installation steps.

Carthage Integration

Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.

Issues and Support

Please file any issues you find here on Github.

Please ensure that you are not sharing any Personally Identifiable Information(PII) or sensitive account information (API keys, credentials, etc.) when reporting an issue.

For general inquiries related to the Video SDK you can file a support ticket.


Twilio Programmable Video for iOS is distributed under TWILIO-TOS.


Stars: 48
Last commit: 6 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

Twilio Video SDK iOS 4.6.0-beta1
7 weeks ago

This release consumes twilio-video-cpp-6.3.0-rc4.

This beta release is for customers to give feedback about Apple Silicon simulator support. Thank you very much for your interest in this feature.

Note: If your app requires more than 10 Participants in a Room then we recommend waiting for the 4.6.0 release.


  • TwilioVideo.xcframework now supports the simulator on Apple Silicon arm64 Macs. #144
    • This results in a size increase for the SDK during development.
    • App store download size is not affected.


  • This release is based on WebRTC M88.
  • The SDK uses Unified Plan SDP semantics instead of Plan-B. This brings several important benefits:
    • Improved interoperability with Firefox, Safari and Chrome in Peer-to-Peer Rooms
    • Track level operations like publishing and unpublishing are more reliable
    • Send side bandwidth estimation is now supported in Group Rooms via transport-cc. Previously, send side bandwidth estimation was only supported in Peer-to-Peer and Go Rooms
  • Improved performance of Room.getStats() by adopting the W3C standardized RTC stats API

API Changes

  • Previously, the ordering of RemoteParticipantDelegate.onAudioTrackSubscribed() and RemoteParticipantDelegate.onVideoTrackSubscribed() was not strictly guaranteed. Now, the ordering of these callbacks may be reversed when compared to previous releases.
  • The value of LocalVideoTrackStats.framesEncoded now reflects the total number of frames encoded for a simulcast track.

Bug Fixes

  • Fixed performance problems with Room.getStats() where block callbacks could sometimes be significantly delayed. [CSDK-3475]
  • Fixed an interoperability issue with twilio-video.js when publishing media in Peer-to-Peer or WebRTC Go Rooms. #931

Known Issues

  • This beta is not recommended in Rooms with > 10 Participants due to increased message sizes. We are working to resolve this size increase before the GA release. [VIDEO-3532]
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.6.0-beta1

Architecture Compressed Size Uncompressed Size
Universal 9.9 MB 21.1 MB
arm64 4.8 MB 11.2 MB
armv7 5.1 MB 9.9 MB

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API