Skip to contentSkip to navigationSkip to topbar
On this page

2.x iOS Changelog


(information)

Getting Started? Go for Programmable Chat SDK 4.x for iOS

If you are starting out with Twilio's Programmable Chat SDK for iOS, we highly recommend starting with version 4.x. Version 4.x is our latest SDK and it brings many new features and improvements to the 1.x and 2.x versions. And it will be much easier to migrate to Twilio Conversations.

(warning)

Support for 2.x ceased March 6, 2021

Not using 4.x? You should migrate ASAP

If you are already using 2.x, we highly recommend planning your migration to 4.x as soon as possible.

End-of-Life for 1.x occurred on June 30, 2019.

Programmable Chat iOS 2.6.6 (February 5, 2020)

programmable-chat-ios-266-february-5-2020 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

Changes

changes page anchor
  • Fixed crashes on early deinitialization of a chat client.
  • Errors are now more human-readable for debugging purposes.
  • Fixed a bug related to joinChannel callback. Sometimes it was not called.
  • Improved logging.

Programmable Chat iOS 2.6.5 (November 26, 2019)

programmable-chat-ios-265-november-26-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed memory leaks in SDK.
  • Fixed a crash in makeUserDescriptor.
  • Fixed an issue when isOnline and isNotifiable methods in TCHUserDescriptor could return the wrong value.
  • Fixed double callbacks call while offline for addByIdentity:completion: and inviteByIdentity:completion in TCHMembers.
  • Fixed an issue when SDK could hang on multiple calls of channelWithCompletion:.

Programmable Chat iOS 2.6.4 (October 29, 2019)

programmable-chat-ios-264-october-29-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed a bug where member.subscribedUser(completion) was not working after calling unsubscribe() method.
  • Added minimum required iOS version to the start page.
  • Added documentation about semi-realtime counters.

Programmable Chat iOS 2.6.3 (October 11, 2019)

programmable-chat-ios-263-october-11-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed a bug that caused an excessive subscription retry loop on failure, which would lead to an increased network and battery consumption.

Programmable Chat iOS 2.6.2 (deprecated, please use 2.6.3)

programmable-chat-ios-262-deprecated-please-use-263 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed retrieving member attributes when invoked immediately after client initialization.
  • Fixed handling device token in order to correctly support push notifications on iOS 13.

Programmable Chat iOS 2.6.1 (September 3, 2019)

programmable-chat-ios-261-september-3-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed loading of the framework from an extension.

Programmable Chat iOS 2.6.0 (August 6, 2019)

programmable-chat-ios-260-august-6-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Added the new type property to TCHMember
  • Added new error messages and codes dependent on member's type for userDescriptorWithCompletion and subscribedUserWithCompletion from TCHMember
  • Fixed parameter validation for subscribedUserWithIdentity:completion: and userDescriptorWithIdentity:completion: from TCHUsers
(information)

Info

userDescriptorWithCompletion and subscribedUserWithCompletion from TCHMember are available only for members of type chat


Programmable Chat iOS 2.5.1 (July 31, 2019)

programmable-chat-ios-251-july-31-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed handling of members with empty identity
  • Fixed a bug when calling removeMember from TCHMembers
  • Fixed a race condition when invoking typingStartedOnChannel / typingStartedOnChannel from TwilioChatClientDelegate

Programmable Chat iOS 2.5.0 (July 10, 2019)

programmable-chat-ios-250-july-10-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Added member and memberSid properties to TCHMessage
  • Added support for member attributes
  • Fixed crash on rapid logging reinitialization, if multiple clients are in use
  • Enabled passing nil options when creating a channel
  • Improved input parameter validation for channel create operation

Programmable Chat iOS 2.4.8 (June 28, 2019)

programmable-chat-ios-248-june-28-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Improved stability on shutdown, fixed crash issue.
  • Fixed memory leaks in media upload
  • Fixed crash on media download in bad networking conditions
  • Enabled full bitcode support for the framework
  • Added debug information and symbols to the framework to enable better diagnostics and troubleshooting
(information)

Info

Features above lead to a significant increase in the size of the distributable. The increased size of the framework has no negative effect on installable applications distributed through App Store, they would remain of a similar size.


Programmable Chat iOS 2.4.6 (April 11, 2019)

programmable-chat-ios-246-april-11-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Improved connection reliability under bad network conditions.
  • Fixed unexpected connectivity errors with code 1401: Unable to establish connection to Twilio Sync service.

Programmable Chat iOS 2.4.5 (February 15, 2019)

programmable-chat-ios-245-february-15-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • SDK size reduction - it gained over the course of the year, so we sent it to the gym. Native libraries are now repackaged and optimized for size.

Programmable Chat iOS 2.4.4 (January 31, 2019)

programmable-chat-ios-244-january-31-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed strong reference to TCHChannel's delegate that could prevent Chat library from properly shutting down
  • Improved stability

Programmable Chat iOS 2.4.3 (January 21, 2019)

programmable-chat-ios-243-january-21-2019 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Fixed crash on restoring after disconnected or backgrounded state
  • Fixed memory leaks in media upload

Programmable Chat iOS 2.4.2 (December 6, 2018)

programmable-chat-ios-242-december-6-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Introduced Push Notification Muting, with per-channel user notification preferences. A channel's notificationLevel can be either TCHChannelNotificationLevelDefault to receive notifications or TCHChannelNotificationLevelMuted to suppress them.

  • added TCHChannelUpdateUserNotificationLevel to TCHChannelUpdate enum - this update is triggered when channel's notification level is changed.

  • NOTE: You need to grant EditNotificationLevel permission to the user roles to be able to change this setting. See the Chat Permissions documentation.

  • Added new token lifecycle management delegate callbacks which reduce the need for TwilioAccessManager integration when only using one Twilio client SDK:

    • chatClientTokenWillExpire: is called when a token has 3 minutes or less left until expiry and should be refreshed
    • chatClientTokenExpired: is called when a token is already expired and must be refreshed to reconnect to the service
  • New logging level, TCHLogLevelTrace, which provides the most verbose logging level for diagnostics. Use this value to generate logs when reporting SDK issues to Twilio. As before, default log setting is TCHLogLevelSilent, producing no SDK debug output at all.

  • Added TCHMemberUpdateAttributes to TCHMemberUpdate enum. There's currently no way to query member attributes, it will be added in the following SDK version.

  • Overhauled transport and communication layer, significantly reducing network traffic overhead and improving client performance.

  • Provided numerous fixes for improving client stability, focusing on runtime and shutdown crashes.


Programmable Chat iOS 2.3.3 (July 19, 2018)

programmable-chat-ios-233-july-19-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Updates to shutdown procedure to prevent crashes in rare cases during client disposal.

Programmable Chat iOS 2.3.2 (July 3, 2018)

programmable-chat-ios-232-july-3-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


Programmable Chat iOS 2.3.1 (June 19, 2018)

programmable-chat-ios-231-june-19-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Resolved an issue where calling one of the getMessages* could result in a crash if called while client was shutting down.

Programmable Chat iOS 2.3.0 (June 6, 2018)

programmable-chat-ios-230-june-6-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Added metadata about the most recently sent message to TCHChannel:
    • lastMessageDate - the NSDate timestamp of the most recent message on the channel
    • lastMessageIndex - the index of the most recent message on the channel
  • Added method to return a sorted list of the user's subscribed channels:
    • - (nonnull NSArray<TCHChannel *> *)subscribedChannelsSortedBy:(TCHChannelSortingCriteria)criteria order:(TCHChannelSortingOrder)order
  • Added sorting criteria and order enumerations for new sort method:
    • TCHChannelSortingCriteriaLastMessage
    • TCHChannelSortingCriteriaFriendlyName
    • TCHChannelSortingCriteriaUniqueName
    • TCHChannelSortingOrderAscending
    • TCHChannelSortingOrderDescending
  • Added new TCHChannelUpdateLastMessage update type for chatClient:channel:updated: delegate method
  • Resolved an issue where calling one of the getMessages* methods for a channel whose last remaining message was deleted could cause a crash
  • Added additional protections against crashes when the client is disposed during startup
  • Bug fixes and performance updates

Programmable Chat iOS 2.2.3 (May 15, 2018)

programmable-chat-ios-223-may-15-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Privacy by default in logging for GDPR. A new logging level has been introduced, TCHLogLevelSilent, which is also the new default level. We strongly encourage customers use this logging level for production builds especially if serving European customers.
  • Fix for crashes related to logging while the chat client was being disposed.
  • Fix for crashes related to delegate events while the chat client was being disposed.
  • Fix for notifications where channel SID would sometimes be invalid.

Programmable Chat iOS 2.2.2 (April 17, 2018)

programmable-chat-ios-222-april-17-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Addressed possible issue where the Chat Client is disposed during startup.

Access Manager iOS 1.1.2 (April 17, 2018)

access-manager-ios-112-april-17-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Addressed issue where Access Manager could try to call methods on disposed delegate objects.

Programmable Chat iOS 2.2.1 (March 23, 2018)

programmable-chat-ios-221-march-23-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Resolved issue where passing nil to push token method parameters could lead to a crash.
  • Resolved issue where user parameter returned by TCHUserDescriptor's subscribe method could be nil.
  • Resolved potential memory leak when uploading media.

Access Manager iOS 1.1.1 (March 14, 2018)

access-manager-ios-111-march-14-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Added static helper methods for evaluating token expiry:
    • + (BOOL)isExpired:(nonnull NSString *)token
    • + (BOOL)isExpiring:(nonnull NSString *)token
  • Resolved an issue with some identities containing '?' resulting in not getting token expiry events

Programmable Chat iOS 2.2.0 (December 21, 2017)

programmable-chat-ios-220-december-21-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Dates would sometimes not parse correctly for some locales depending on the date format, resulting in nil date objects - they parse consistently now.
  • The body attribute of messages containing media included the placeholder message intended for legacy client versions, potentially incorrectly inferring the client version did not support media attachments. body will now be nil if the TCHMessage has media content.
  • Expanded callbacks delivered from TwilioChatClient to support three new notifications:
    • Added to channel notification: - (void)chatClient:(nonnull TwilioChatClient *)client notificationAddedToChannelWithSid:(nonnull NSString *)channelSid
    • Invited to channel notification: - (void)chatClient:(nonnull TwilioChatClient *)client notificationInvitedToChannelWithSid:(nonnull NSString *)channelSid
    • Removed from channel notification: - (void)chatClient:(nonnull TwilioChatClient *)client notificationRemovedFromChannelWithSid:(nonnull NSString *)channelSid;
  • chatClient:notificationNewMessageReceivedForChannelSid:messageIndex: now consistently returns message index when a new message is received.
  • Added .sid identifier to TCHMember objects.

Programmable Chat iOS 2.1.0 (November 9, 2017)

programmable-chat-ios-210-november-9-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • BEHAVIORAL CHANGE: Bug-fix for calling TCHChannel's joinWithCompletion: or TCHMember's addByIdentity:completion: will now correctly return with a failure result if the user/identity is already a member of the channel instead of success.
  • Updating the consumption horizon now provides the updated unconsumed message count.

The following methods have been deprecated and for now have the same effect as passing null/nil to the optional completion parameters introduced below:

1
- (void)setLastConsumedMessageIndex:(nonnull NSNumber *)index;
2
- (void)advanceLastConsumedMessageIndex:(nonnull NSNumber *)index;
3
- (void)setAllMessagesConsumed;
4
- (void)setNoMessagesConsumed;

These methods are replaced with versions that take an optional completion block:

1
- (void)setLastConsumedMessageIndex:(nonnull NSNumber *)index completion:(nullable TCHCountCompletion)completion;
2
- (void)advanceLastConsumedMessageIndex:(nonnull NSNumber *)index completion:(nullable TCHCountCompletion)completion;
3
- (void)setAllMessagesConsumedWithCompletion:(nullable TCHCountCompletion)completion;
4
- (void)setNoMessagesConsumedWithCompletion:(nullable TCHCountCompletion)completion;

The completion block will convey the newly updated unread message count for the channel for the current user. These operations will also affect the value returned by TCHChannel's getUnconsumedMessagesCountWithCompletion: method, causing the value returned by it to be up to date as of the consumption update the user just performed.


Programmable Chat iOS 2.0.1 (October 11, 2017)

programmable-chat-ios-201-october-11-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Both chat client creation and updateToken:completion: once again give feedback if the provided token is expired or otherwise invalid.
  • Re-connection to the chat server will occur faster when bringing the application to the foreground or the device's network connection recovering while in the application.
  • Fixed an issue where the completion for joinChannel sometimes was not called.
  • Fixed an issue where properties of TCHMessage were sometimes not fully populated by the time sendMessage's completion was called.
  • Fixed an infrequently occurring crash on chat client startup.

Programmable Chat iOS 2.0.0 (September 18, 2017)

programmable-chat-ios-200-september-18-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

Important: The behavior of not-present optional data, such as friendlyName, uniqueName, etc, has changed with this release of Programmable Chat iOS to match the REST API and improve usability in Swift. We no longer return an empty string on missing data, returning instead nil. If you are relying on the previous behavior of empty string to be able to directly display these values in your application, you will need to check for the value instead.

With 2.x, we are moving Programmable Chat iOS releases to the global CocoaPods repository. We will no longer be posting non-beta releases for this SDK to the https://github.com/twilio/cocoapod-specs/(link takes you to an external page) location. If you already have the global CocoaPods source in your Podfile no changes are necessary. If you do not have it, you will need to add source 'https://github.com/cocoapods/specs' or remove the Twilio specific source line. No changes are necessary if you use manual integration of this SDK.

  • Added Multimedia Messaging (beta) API (see Media Support for more information). Note: Sending media messages on existing instances requires adding a new permission in your channel roles.
  • With the addition of support for iOS 11, we are deprecating support for iOS 8 in Programmable Chat iOS 2.x
  • chatClient:channel:updated: will no longer notify on TCHChannelUpdateSynchronizationStatus changes - see the chatClient:channel:synchronizationStatusUpdated: delegate call for these updates
  • Creation of new messages is no longer a two-step process, createMessageWithBody: is deprecated from TCHMessages. You now build a new message using the TCHMessageOptions object and send with sendMessageWithOptions:completion:

Old:

1
TCHMessage *message = [channel.messages createMessageWithBody:@"hello"];
2
[channel.messages sendMessage:message completion:^(TCHResult *result) { }];

New:

1
TCHMessageOptions *options = [[TCHMessageOptions new] withBody:@"hello"];
2
[channel.messages sendMessageWithOptions:options completion:^(TCHResult *result, TCHMessage *message) { }];
  • Nullability hints and behavior have changed for the sdk. SDK methods will accept either nil or an empty string as an argument for clearing data but will consistently return nil when there is no data set for an optional field to improve usability. This applies to dates and user, channel and message attributes as well.

Changes to nullability hints throughout entire public interface.

TCHChannelUpdate
tchchannelupdate page anchor
  • TCHChannelUpdateSynchronizationStatus (REMOVED - see chatClient:channel:synchronizationStatusUpdated:)
TCHMessageType (ADDED)
tchmessagetype-added page anchor
  • + TCHMessageTypeText
  • + TCHMessageTypeMedia
TCHMediaOnStarted (ADDED)
tchmediaonstarted-added page anchor
TCHMediaOnProgress (ADDED)
tchmediaonprogress-added page anchor
TCHMediaOnCompleted (ADDED)
tchmediaoncompleted-added page anchor
  • + messageType (ADDED
  • + mediaSid (ADDED)
  • + mediaSize (ADDED)
  • + mediaType (ADDED)
  • + mediaFilename (ADDED)
  • - hasMedia (ADDED)
  • - getMediaWithOutputStream:onStarted:onProgress:onCompleted:completion: (ADDED)
  • - createMessageWithBody: (REMOVED)
  • - sendMessage:completion: migrated to -sendMessageWithOptions:completion: completion now provides a handle to the new TCHMessage

Access Manager iOS 1.0.0 (September 18, 2017)

access-manager-ios-100-september-18-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

With 1.x, we are moving Access Manager releases to the global CocoaPods repository. We will no longer be posting non-beta releases for this SDK to the https://github.com/twilio/cocoapod-specs/(link takes you to an external page) location. If you already have the global CocoaPods source in your Podfile no changes are necessary. If you do not have it, you will need to add source 'https://github.com/cocoapods/specs' or remove the Twilio specific source line. No changes are necessary if you use manual integration of this component.





Legacy Versions

legacy-versions page anchor

Programmable Chat iOS v1.0

programmable-chat-ios-v10 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

Programmable Chat iOS 1.0.10 (February 6, 2018)

programmable-chat-ios-1010-february-6-2018 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Updated internal certificate store for upcoming certificate authority changes.

Programmable Chat iOS 1.0.9 (October 11, 2017)

programmable-chat-ios-109-october-11-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)

  • Both chat client creation and updateToken:completion: once again give feedback if the provided token is expired or otherwise invalid.
  • Re-connection to the chat server will occur faster when bringing the application to the foreground or the device's network connection recovering while in the application.
  • Fixed an issue where the completion for joinChannel sometimes was not called.
  • Fixed an issue where properties of TCHMessage were sometimes not fully populated by the time sendMessage's completion was called.

Programmable Chat iOS 1.0.8 (September 15, 2017)

programmable-chat-ios-108-september-15-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Resolved issue when updating token on chat client after token expiry.

Programmable Chat iOS 1.0.7 (August 9, 2017)

programmable-chat-ios-107-august-9-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Performance enhancements
  • Resolved possible crash during client creation if initialization takes an especially long time

Programmable Chat iOS 1.0.6 (July 25, 2017)

programmable-chat-ios-106-july-25-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Completion handler for TCHChannel's join method will be delayed until the channel is fully synchronized, guaranteeing availability of members and messages objects.

Programmable Chat iOS 1.0.5 (July 17, 2017)

programmable-chat-ios-105-july-17-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Fixed issues related to thread management, which in many cases should lead to significant performance gains.
  • Fixed crashes possible during client shutdown.

Programmable Chat iOS 1.0.4 (June 21, 2017)

programmable-chat-ios-104-june-21-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Fix bug where TCHChannel's chatClient:channel:synchronizationStatusUpdated: delegate method was not called.
  • Added channel synchronization status method to chat client delegate.
  • Trigger channel's synchronization status delegate method every time a channel delegate is assigned for convenience.
  • Resolved issue where TCHMessages' getLastMessagesWithCount:completion: could hang.

Programmable Chat iOS 1.0.3 (June 8, 2017)

programmable-chat-ios-103-june-8-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Fixed a bug whereby client initialization did not completed correctly - i.e. no success nor failure callback was received for client creation. This was for cases not fixed in the previous release.
  • Fixed an issue whereby the SDK could crash in some cases when creating a new Chat Client instance.

Programmable Chat iOS 1.0.2 (June 2, 2017)

programmable-chat-ios-102-june-2-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Fixed a bug whereby client initialization did not completed correctly - i.e. no success nor failure callback was received for client creation
  • Fixed a bug whereby some commands did not correctly complete - i.e. no success callback nor failure was received

Programmable Chat iOS 1.0.1 (May 24, 2017)

programmable-chat-ios-101-may-24-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Fixed a bug whereby after a call to the client's shutdown sometimes caused New Message push registrations to be lost for the endpoint.

Programmable Chat iOS 1.0.0 (May 2, 2017)

programmable-chat-ios-100-may-2-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • userInfo migrated to user
  • chatClientWithToken:properties:delegate: migrated to chatClientWithToken:properties:delegate:completion:
  • updateToken: migrated to updateToken:completion:
  • +users (ADDED)
  • registerWithToken: migrated to registerWithNotificationToken:completion:
  • deregisterWithToken: migrated to deregisterWithNotificationToken:completion:
  • handleNotification: migrated to handleNotification:completion:

TCHTwilioClientCompletion (ADDED)

tchtwilioclientcompletion-added page anchor

TwilioChatClientProperties

twiliochatclientproperties page anchor
  • synchronizationStrategy (REMOVED)
  • initialMessageCount (REMOVED)

TwilioChatClientDelegate

twiliochatclientdelegate page anchor
  • chatClient:connectionStateChanged: renamed to chatClient:connectionStateUpdated:
  • chatClient:synchronizationStateChanged: renamed to chatClient:synchronizationStateUpdated:
  • chatClient:channelChanged: migrated to chatClient:channel:updated:
  • - chatClient:channel:synchronizationStatusChanged:
  • chatClient:channel:memberChanged: renamed to chatClient:channel:member:updated:
  • chatClient:channel:messageChanged: migrated to chatClient:channel:message:updated:
  • - chatClientToastSubscribed: (REMOVED)
  • - chatClient:toastRegistrationFailedWithError: (REMOVED)
  • chatClient:toastReceivedOnChannel:message: migrated to chatClient:notificationNewMessageReceivedForChannelSid:messageIndex:
  • + chatClient:user:updated: (ADDED)
  • + chatClient:userSubscribed: (ADDED)
  • + chatClient:userUnsubscribed: (ADDED)
  • synchronizeWithCompletion: (REMOVED)

TCHChannelDelegate (CHANGED)

tchchanneldelegate-changed page anchor
  • chatClient:channelChanged: migrated to chatClient:channel:updated:
  • chatClient:channel:synchronizationStatusChanged: renamed to chatClient:channel:synchronizationStatusUpdated:
  • chatClient:channel:memberChanged: renamed to chatClient:channel:member:updated:
  • chatClient:channel:messageChanged: migrated to chatClient:channel:message:updated:
  • chatClient:channel:member:userInfo:updated: migrated to chatClient:channel:member:user:updated:
  • + chatClient:channel:member:userSubscribed: (ADDED)
  • + chatClient:channel:member:userUnsubscribed: (ADDED)

TCHChannels (CHANGED)

tchchannels-changed page anchor
  • - userChannelsWithCompletion: (REMOVED)
  • + subscribedChannels (ADDED)
  • + userChannelDescriptorsWithCompletion: (ADDED)
  • publicChannelsWithCompletion: renamed to publicChannelDescriptorsWithCompletion:

TCHChannelUpdate (ADDED)

tchchannelupdate-added page anchor
  • + TCHChannelStatusUnknown (ADDED)

TCHChannelPaginator -> TCHChannelDescriptorPaginator (RENAMED)

tchchannelpaginator---tchchanneldescriptorpaginator-renamed page anchor

TCHChannelPaginatorCompletion (REMOVED)

tchchannelpaginatorcompletion-removed page anchor
  • userInfo migrated to identity
  • + userDescriptorWithCompletion: (ADDED)
  • + subscribedUserWithCompletion: (ADDED)

TCHMemberUpdate (ADDED)

tchmemberupdate-added page anchor

TCHMessageUpdate (ADDED)

tchmessageupdate-added page anchor
  • + resultCode (ADDED)
  • + resultText (ADDED)
  • + userDescriptorsForChannel:completion:
  • + userDescriptorWithIdentity:completion:
  • + subscribedUserWithIdentity:completion:
  • + subscribedUsers

TCHUserInfo -> TCHUser (MIGRATED)

tchuserinfo---tchuser-migrated page anchor
  • + isSubscribed (ADDED)
  • + unsubscribe (ADDED)

TCHUserInfo -> TCHUserDescriptor (MIGRATED)

tchuserinfo---tchuserdescriptor-migrated page anchor
  • + subscribeWithCompletion: (ADDED)
  • - setAttributes:completion: (REMOVED)
  • - setFriendlyName:completion: (REMOVED)

TCHUserCompletion (ADDED)

tchusercompletion-added page anchor

TCHUserDescriptorCompletion (ADDED)

tchuserdescriptorcompletion-added page anchor

TCHUserDescriptorPaginatorCompletion (ADDED)

tchuserdescriptorpaginatorcompletion-added page anchor

TCHUserInfoUpdate -> TCHUserUpdate (CHANGED)

tchuserinfoupdate---tchuserupdate-changed page anchor

Programmable Chat iOS 0.17.3 (May 19, 2017)

programmable-chat-ios-0173-may-19-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Fix for absence of channel added delegate when a private channel is created from a separate endpoint.

Programmable Chat iOS 0.17.2 (April 3, 2017)

programmable-chat-ios-0172-april-3-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • The iOS SDK now supports badging when enabled on your Chat instance for clients you have registered for push notifications. Badges will indicate the number of unread 1:1 channels the user has.
  • Resolved an issue where the client creation call and updateToken calls may perform a network operation on the calling thread, blocking it. These operations now occur in the background and the calls once again return immediately.
  • Introduced callback for badge updates on iOS. This delegate method will be called as a result of the chat library processing a notification via TwilioChatClient's handleNotification: method where the badge count updates. When your application is foregrounded, iOS will not automatically update the springboard badge count on its own so your application must manually update it. If your application receives its badge updates through a mechanism other than Twilio, you can omit this delegate method and handle this event in another way. See chatClient:notificationUpdatedBadgeCount: in the SDK docs or [demo application](link takes you to an external page) for more information including a sample implementation.

Programmable Chat iOS 0.17.1 (February 23, 2017)

programmable-chat-ios-0171-february-23-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • The endpoint_id identifier specified in access tokens is now automatically generated and persisted in the keychain. The following should be observed with this change:
    • endpoint_id is no longer a required identifier in your generated access tokens, you may omit it from this build forward
    • endpoint_id will be ignored if specified with your access token
    • When running in the iOS simulator only, the automatically generated endpoint_id may not persist between runs to the simulator keychain without this [work-around](link takes you to an external page)
  • If a client is initially created with an invalid access token, creation will fail and nil will be returned for the client instance
  • Resolved an issue where APNS registrations for the user may be lost after shutdown of the client. Ensure when you are logging a user fully out of an application that registers for push notifications you call deregisterWithToken: with the device's token prior to shutdown to prevent messages continuing to be delivered to the device.
  • Resolved an issue where crashes could occur during client shutdown, in particular while in the background
  • Security enhancements

Access Manager iOS 0.1.3 (February 14, 2017)

access-manager-ios-013-february-14-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Resolved issue where invalid tokens could cause a crash when foregrounding the application after being in the background.

Programmable Chat iOS 0.16.1 (January 30, 2017)

programmable-chat-ios-0161-january-30-2017 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Resolved potential incompatibility with other Twilio SDKs in the same project
  • Fix for channel added events not occurring with synchronization strategy .ChannelList

Access Manager iOS 0.1.2 (December 6, 2016)

access-manager-ios-012-december-6-2016 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • Resolved issue with Framework short version string

Programmable Chat iOS 0.16.0 (November 21, 2016)

programmable-chat-ios-0160-november-21-2016 page anchor

[tar](link takes you to an external page) [docs](link takes you to an external page)


  • TwilioIPMessagingClient -> TwilioChatClient
  • All TWM class prefixes to TCH
  • AccessManager is removed from the SDK and provided as a stand-alone helper library
  • Channels are now split between Public and User channels list.
    • Unjoined public channels no longer fire channel added/removed/changed events
  • Migration to asynchronous-only access to most entities within system
    • Includes addition of paging to User and Public channels list as well as channel Members

TwilioChatClient (CHANGED)

twiliochatclient-changed page anchor
  • + updateToken method

TCHChannel (CHANGED)

tchchannel-changed page anchor
  • + createdBy property
  • + memberWithIdentity method
  • + getUnconsumedMessagesCountWithCompletion:
  • + getMessagesCountWithCompletion:
  • + getMembersCountWithCompletion:
  • - allObjects
  • + userChannelsWithCompletion:
  • + publicChannelsWithCompletion:
  • - channelWithId:
  • - channelWithUniqueName:
  • + channelWithSidOrUniqueName:completion:

TCHChannelDescriptorPaginatorCompletion (ADDED) TCHChannelPaginatorCompletion (ADDED) TCHMemberPaginatorCompletion (ADDED) TCHChannelCompletion (ADDED)

TCHChannelDescriptor (ADDED) TCHChannelDescriptorPaginator

TCHChannelPaginator (ADDED)

TCHMemberPaginator (ADDED)

TCHMembers (CHANGED)

tchmembers-changed page anchor
  • - allObjects
  • + membersWithCompletion:

TCHMessages (CHANGED)

tchmessages-changed page anchor
  • - allObjects
  • - getMessageWithIndex:
  • + getMessageWithIndex:completion:
  • - messageForConsumptionIndex:
  • + messageForConsumptionIndex:completion:

Need some help?

Terms of service

Copyright © 2024 Twilio Inc.