Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Twilio Client iOS SDK Changes

The Twilio Client SDKs for Android & iOS have been deprecated and replaced by Twilio's new Programmable Voice SDK.

The Programmable Voice SDK offers many improvements over the Twilio Client SDK, including greater stability, improved backgrounding, and built-in support for push notifications for incoming calls.

Get started with the new Programmable Voice SDK by checking out one of the links below:
* Programmable Voice SDK for Android Quickstart
* Programmable Voice SDK for iOS: Objective-C Quickstart
* Programmable Voice SDK for iOS: Swift Quickstart

If you're just getting started with a Twilio mobile application for voice calling, we recommend you use the Programmable Voice SDK. If you're already using the Twilio Client SDK, you should plan to upgrade to the Programmable Voice SDK as soon as you're able.


1.2.11 (June 15, 2016)

Bug Fixes
  • CLIENT-2516 Fixes a bug where the SDK was generating a extraneous error message "Deactivating an audio session that has running I/O" while disconnecting a call.
  • CLIENT-2625 Fixes a bug where the SDK was unable to receive incoming calls after switching between IPv4 and IPv6 networks. This also fixes a bug where SDK could not make outgoing calls when initialized without incoming call capability and then switching networks between IPv4 and IPv6.

1.2.10 (May 27, 2016)

Bug Fixes
  • CLIENT-2599 Twilio Client iOS now supports IPv6 networks. Users can make and receive calls when their device is connected to a network that uses IPv4, IPv6, or both versions of the protocol.
  • CLIENT-2575 Fixes a bug that bitcode-enabled applications fail to archive.
Known Issues
  • Switching between IPv4 and IPv6 network without re-registering is not currently supported.

1.2.9 (Apr. 25, 2016)

Bug Fixes
  • CLIENT-2400 - Fixes a bug where a Connection may not be properly disconnected if TCConnection.disconnect() is called before the connectionDidConnect callback has been invoked.

1.2.8 (Mar. 30, 2016)

Bug Fixes
  • CLIENT-2134 - The SDK is now bitcode-enabled.
  • CLIENT-2136 - The -read_only_relocs suppress flag is removed from the podspec.
  • CLIENT-2119 - Fixes the linker warnings about pre-compiled headers and missing external types.
  • CLIENT-2109 - Fixes a crash when network reachability is changed, e.g., switching from carrier network to WIFI, especially when the connectivity is bad and the application is in the background.
API Changes
  • A new and easier-to-use class method version for getting the SDK version has been added to the TwilioClient object. The original version property and its getter method is still available.

1.2.7 (Nov. 23, 2015)

Bug Fixes
  • CLIENT-1690 - Fixes a bug where an application was not able to receive presence events after calling unlisten then listen sequentially on TCDevice.
  • CLIENT-1695 - Initializing or updating a TCDevice instance with a nil or empty capability token string will now trigger the device:didStopListeningForIncomingConnections: delegate callback.
  • CLIENT-1812 - The SDK will no longer print log messages for temporary SIP registration redirects.
  • CLIENT-1878 - Fixes a crash when initializing or updating a TCDevice instance.

1.2.6 (Nov. 9, 2015)

Bug Fixes
  • CLIENT-1688 - The SDK now gracefully handles audio interruptions from incoming phone calls and other audio events. The audio of a Twilio Client call will resume after an interruption ends.
  • CLIENT-1950 - The SDK automatically rejects pending incoming connections upon network reachability change events.
API Changes
  • CLIENT-2038 - New API setMetricsEnabled:(BOOL)enabled added in TwilioClient to enable/disable the collection and transmission to Twilio of call quality analytics. This feature is enabled by default.

1.2.5 (Sep. 3, 2015)

Bug Fixes
  • CLIENT-1878 - TCDevice no longer automatically reconnects to Twilio following a disconnection due to bad network connectivity. The previous behavior produced a crash when the application developer simultaneously attempted to reconnect at the device:didStopListeningForIncomingConnections: delegate callback.

1.2.4 (Aug. 13, 2015)

Bug Fixes
  • CLIENT-1878 - Fix crash when multiple TCDevice initializations or updates are made under bad network connectivity.
  • CLIENT-1823 - Twilio Client crashes when TCDevice set to nil.
  • CLIENT-1928 - Fix crash when phone is in airplane mode.
  • CLIENT-1915 - Convert BasicPhone sample app to ARC.

1.2.3 (Mar. 19, 2015)

Bug Fixes
  • MSDK-181 - Fix crash when placing a call before registration completes.
  • MSDK-305 - Remove non-referenced libraries from sample projects.
  • MSDK-309 - Suppress warning message about wildcard certificates.
  • MSDK-388 - Fix crash on TCPresenceEvent.
  • MSDK-477 - Fix rare registration failure with redirect.

1.2.2 (Jan. 29, 2015)

API Changes
  • MSDK-87 - New API to obtain version of iOS SDK.
Bug Fixes
  • MSDK-8 - TCDevice state becomes TCDeviceStateOffline whenever its capability token expires.
  • MSDK-77 - TCConnectionState enum is now accessible from Swift.
  • MSDK-93 - The SDK now includes separate libraries for OpenSSL.
  • MSDK-98 - The SDK no longer crashes when initializing TCCommandHandler in iOS 7.0 and lower.
  • MSDK-100 - Corrected a crash that could occasionally occur when un-registering a TCDevice by calling -unlisten or due to capability token expiration.
  • MSDK-101, MSDK-102, MSDK-146, MSDK-181 and MSDK-183 - A number of crashes that could occur when calling [TCDevice connect] have been corrected.
  • MSDK-106 - The SDK no longer pauses music when [TCDevice initWithCapabilityToken] is called.
  • MSDK-184 - The SDK now uses OpenSSL v1.0.1k.

1.2.1 (Dec. 18, 2014)

Bug Fixes
  • MSDK-42 - Eliminated "duplicate symbol" error loading lib in TwilioSDK 1.2.
  • MSDK-47 - Eliminated a rare crash when handling a 302 redirect response from Twilio.
  • MSDK-56 - TwilioSDK no longer holds onto TCConnection objects.
  • MSDK-58 - Fixed a problem where didReceiveIncomingConnection did not work as expected when handling multiple TCDevice objects.
  • MSDK-76 - Eliminated a crash caused by accessing pjlib in an unknown/external thread.

1.2.0 (Nov. 25, 2014)

Initial 1.2 release.

Support for Twilio’s Global Low Latency Routing

Twilio Client for iOS now takes advantage of Twilio’s Global Low Latency (GLL) routing to further improve call quality. Media for all Twilio Client calls is routed to the Twilio data center geographically nearest to the user, significantly reducing call latency.

Support for arm64

Twilio Client for iOS can now target the 64-bit runtime, improving the performance of your Twilio Client application.

Richer Debug Logging

We’ve made it easier to find and resolve issues in your Twilio Client iOS application with more detailed logging.

[[TwilioClient sharedInstance] setLogLevel:TC_LOG_DEBUG];

Available log levels in order of verbosity: TC_LOG_OFF, TC_LOG_ERROR, TC_LOG_WARN, TC_LOG_INFO, TC_LOG_DEBUG, TC_LOG_VERBOSE.

Call Sid Availability

Call Sid is available for outgoing calls as well.

Improved Sample Applications

We have improved both BasicPhone and Quickstart sample applications. Server backend can be simply installed to your Heroku account from

Supported iOS Releases
  • iOS 6.0+
  • iOS 7.0+
  • iOS 8.0+
Supported iOS Devices
  • iPhone 4S and later (running iOS 6 and later)
  • iPad 2 and later (running iOS 6 and later)

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

Loading Code Sample...