Rate this page:

Changelog: Twilio Chat iOS SDK

We intend to sunset the Programmable Chat API on July 25, 2022 to focus on the next generation of chat: the Twilio Conversations API. Learn more. We have also prepared this Migration Guide to assist in the transition from Chat to Conversations.

Twilio Programmable Chat SDKs use Semantic Versioning. Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend that you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 4.x is the latest iOS version.

Support for 3.x will be ceased on July 20, 2021. Please upgrade to the latest version.

Support for 2.x ceased on March 6, 2021. Please upgrade to the latest version.

End-of-Life for 1.x occured on June 30, 2019. Please upgrade to the latest version.

Latest releases for the Programmable Chat iOS SDK

We recommend using these links in your projects. As we patch bugs, these links will automatically be updated with the fixes.

Programmable Chat iOS v4.2

  • [tar] Downloadable Chat SDK archive.
  • [docs] Chat SDK documentation, hosted on Twilio CDN.

With the release of Chat iOS 2.4.2 SDK the standalone AccessManager is no longer necessary; its functionality is now integrated into the Chat SDK. Your old implementations that use AccessManager will continue to operate normally, until you implement two new methods on TwilioChatClientDelegate - chatClientTokenWillExpire: and chatClientTokenExpired:. After that, you can safely remove AccessManager from your project.

In response to these new delegate methods calls you should query an updated token and set it on your chatClient instance by using [TwilioChatClient updateToken:] method. For more information, see Access Token Lifecycle.

Access Manager iOS v1.1 [tar] [docs]

Change Logs

Links are provided to specific patch versions here. We don't recommend using these links unless you have a specific need for a certain patch of a release.

Programmable Chat iOS 4.2.0 (March 23, 2021)

[archive] [docs] sha256: 57906c180c5e5bf6fa1fee68ae53fff3971978dccecd66de29ab00b1a3fb4e3e


  • Added possibility to set dispatch queue to get reports not from main queue, but from selected one.
  • Added support of XCFramework with arm64 simulator.
  • Added support for SPM.
  • Removed support of Carthage until it would support binary XCFrameworks.
  • Fixed an issue when connection could be not established after returning background.


If you are interested in Mac Catalyst support please contact support to get hands-on experience with it.

Programmable Chat iOS 4.1.0 (January 29, 2020)

[tar] [docs] sha256: 8dc38e7821af141983b99fa504c4f557d1fec8e3f0083a716f7269ef645845e0


  • The SDK now supports HTTP proxy. Proxy is enabled with a new flag useProxy passed to client properties on client creation. Proxy settings are read from the system configuration.
  • Added the ability to defer certificate checks to the OS (disable pinning) using a new flag, deferCertificateTrustToPlatform, passed to client properties on client creation.

Known issues:

  • TCHUserUpdateReachabilityOnline and TCHUserUpdateReachabilityNotifiable events could not come sometimes.

Programmable Chat iOS 4.0.2 (November 13, 2020)

[tar] [docs]


  • Fixed a bug when onChannelDeleted doesn't come for private Channel when Member removed by other user.
  • Fixed a bug which could lead to client synchronisation stuck.
  • Fixed a crash on accessing memberWithIdentity from multiple threads.

Programmable Chat iOS 4.0.1 (October 21, 2020)

[tar] [docs]


  • Fixed a bug which could lead to crashes on member attributes update.

Programmable Chat iOS 4.0.0 (July 20, 2020)

[tar] [docs]

Breaking changes:

  • Renamed TCHMessage accessor: timestampdateCreated; timestampAsDatedateCreatedAsDate.
  • Asynchronous [TCHMembers membersWithCompletion] transformed to synchronous [TCHMembers membersList].
  • Added TCHMemberUpdateLastConsumptionTimestamp.
    • This as a result also changed value of TCHMemberUpdateAttributes. (potentially silently breaking change if this value was serialized)
  • Changed TWSMap/TWSList queryItemsWithOptions to return error in completion if pageSize is 0.
  • Changed [TCHChannel getUnconsumedMessagesCountWithCompletion] to return nil instead of 0 if message consumption horizon was not set.
    • Completion now uses NSNumber* (nullable object type), instead of NSUInteger to accommodate this change.
  • Changed [TCHMessages setNoMessagesConsumedWithCompletion] to use nullable NSNumber*, it will always return nil (because it resets the consumption horizon).


  • Added [TCHMessage getMediaContentTemporaryUrlWithCompletion] to get a temporary direct link to Media content.
    • To download Media by direct URL, use native iOS API, such as [NSData dataWithContentsOfURL()].
    • Deprecated [TCHMessage getMediaWithOutputStream:...]. Use above API instead.

Programmable Chat iOS 3.1.1 (June 1, 2020)

[tar] [docs]


  • Fixed the bug when connection is dropped with message: "The WebSocket message exceeded the locally configured limit".

Programmable Chat iOS 3.1.0 (May 20, 2020)

This version has been deprecated June 1, please use 3.1.1.

[tar] [docs]


  • Added ability to specify custom command timeout for operations like send message, join to a channel, etc.

Programmable Chat iOS 3.0.2 (April 2, 2020)

This version has been deprecated June 1, please use 3.1.1.

[tar] [docs]


  • Fixed an issue when the same state comes to [TwilioChatClient chatClient:connectionStateUpdated:].
  • Improved stability on shutdown, fixed crash issues.

Programmable Chat iOS 3.0.1 (March 12, 2020)

[tar] [docs]


  • Restored missing CFBundleVersion and CFBundleShortVersionString in the Info.plist of the framework, which fixes exporting app archives to AppStore.

Programmable Chat iOS 3.0.0 (March 6, 2020)

[tar] [docs]

Breaking changes:

  • Dropped iOS v9, v10 support. Minimum iOS version now is 11.0
  • Added type-safe interface TCHJsonAttributes for Attributes (TCHChannel, TCHMessage, TCHMember, TCHUser). Now it supports not only Json Object, which was translated to NSDictionary, but also NSArray, NSString, NSNumber, NSNull.


  • Fixed a bug when channel attributes are empty when chatClient:channelAdded: called.
  • Fixed an issue when sometimes connecting events don’t arrive.
  • Fixed incorrect behaviour when user identity contained some special symbols.
  • New type of error TCHClientConnectionStateFatalError could appear in some cases. This error means chat is in a terminal state, and needs to re-create the client.


For older changelog entries including 2.x, click Changelog

Rate this page:

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.


        Thank you for your feedback!

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

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!

        Step 1

        Get link

        Get a free personal referral link here

        Step 2

        Give $10

        Your user signs up and upgrade using link

        Step 3

        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more