Programmable Chat has been deprecated and is no longer supported. Instead, we'll be focusing on the next generation of chat: Twilio Conversations. Find out more about the EOL process here.
If you're starting a new project, please visit the Conversations Docs to begin. If you've already built on Programmable Chat, please visit our Migration Guide to learn about how to switch.
We recommend referencing the links below in your projects. As we patch bugs, these links will automatically be updated with fixes.
pod 'TwilioChatClient', '~> 5.0.1'
https://github.com/twilio/twilio-chat-ios
If you need help installing these frameworks in your project, see our installation guidance.
The Chat iOS SDK is unavailable via Carthage because we require support for binary XCFramework files.
If you are interested in Mac Catalyst support, please contact support to get hands-on experience with it.
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 5.x is the latest iOS version.
Support for 4.x will cease on May 17, 2022. Please upgrade to the latest version.
Support for 3.x 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 occurred on June 30, 2019. Please upgrade to the latest version.
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.
onChannelAdded
event sometimes didn't arrive after restoring application from background.
[TCHChannel setAttributes]
will invoke completion (i.e., success) while
[TCHChannel attributes]
still returns the old value. To see the new value, we recommend waiting for an update event, e.g., in the
chatClient:channel:updated:TCHChannelUpdateAttributes
delegate.
50601, Invite not found instead
of
50602, Cannot decline invite when already channel member
.
50402, Member not found
instead of
50400, User not member of channel
.
useProxy
passed to client properties on client creation. Proxy settings are read from the system configuration.
deferCertificateTrustToPlatform
, passed to client properties on client creation.
withAttributes
on message options creation will be called now after a message would be sent.
TCHUserUpdateReachabilityOnline
and
TCHUserUpdateReachabilityNotifiable
events could not come sometimes.
onChannelDeleted
doesn't come for private Channel when Member removed by other user.
memberWithIdentity
from multiple threads.
TCHMessage
accessor:
timestamp
as
dateCreated
;
timestampAsDate
as
dateCreatedAsDate
.
[TCHMembers membersWithCompletion]
transformed to synchronous
[TCHMembers membersList]
.
TCHMemberUpdateLastConsumptionTimestamp
.
TCHMemberUpdateAttributes
, potentially a silent breaking change if this value was serialized.
queryItemsWithOptions
to return error in completion if
pageSize
is 0.
[TCHChannel getUnconsumedMessagesCountWithCompletion]
to return nil instead of 0 if message consumption horizon was not set.
NSNumber*
(nullable object type), instead of NSUInteger to accommodate this change.
[TCHMessages setNoMessagesConsumedWithCompletion]
to use nullable
NSNumber*
, it will always return nil (because it resets the consumption horizon).
[TCHMessage getMediaContentTemporaryUrlWithCompletion]
to get a temporary direct link to Media content.
[NSData dataWithContentsOfURL()]
.
[TCHMessage getMediaWithOutputStream:...]
. Use above API instead.
This version has been deprecated June 1, please use 3.1.1.
This version was deprecated June 1, 2019, please use 3.1.1.
[TwilioChatClient chatClient:connectionStateUpdated:]
.
CFBundleVersion
and
CFBundleShortVersionString
in the
Info.plist
of the framework, which fixes exporting app archives to AppStore.
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
.
chatClient:channelAdded:
called.
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, see the 2.x Changelog.