- Fixed a crash that could occur when closing websocket connection.
- Fixed an intermittent crash issue when receiving pinned messages.
- Fixed a crash issue when websocket starts.
- Improved stability
- Fixed an issue where completionHandler of
SBDMain.initWithApplication
does not get called ifuseCaching
is set tofalse
- Fixed a crash that could occur when connecting users in multi-threading
- Fixed a crash that could occur when connecting users in multi-threading
- Updated iOS deployment target to 11.0 for Xcode 14.1+
- Fixed completion to be called only once when the received websocket command is an error
- Fixed crash issue that occurs when websocket disconnects
- Fixed crash issue that occurs when websocket disconnects
- Improved stability
- Improved stability
- Fixed a bug that the callback of the connect method returns the connection canceled error
- Fixed potential memory issue when closing websocket
- Fixed crash issue when closing websocket
- Fixed unreadMessageCount not being updated
- Fixed a crash issue in WebSocket.
- Fixed reachability delegate to always run on main thread.
- Fixed unreadMessageCount to be updated when an unread message is deleted
- Fixed a crash issue in
[SBDAppInfo _toDictionary]
- Fixed potentail thread safety issue of getMembers for SBDGroupChannel
- Fixed session key security issue
- Improved stability
- Fixed multiple concurrent connections issue
- Fixed metaArrays not being copied when copying a userMessage
- Fixed timer concurrency issue when reconnecting
- Fixed an issue that caused the main thread to slow down while using
SBDGroupChannelCollection
- Improved stability
- Implemented synchronous initialization for SBDMain
- Improved stability when sending FILE messages
- Removed older implementation of polls from v3
- Resolved priority inversion warning
- Fixed duplicate message being returned in SBDMessageCollection's loadPrevious and loadNext
- Improved stability
- Added MessageSearchQuery's totalCount and made it public
- Implemented channel membership history where clients can retrieve whether users have joined or left the channel
- Removed some logs to improve performance
- Fixed an error where the channel update event was not triggered when receiving a new message using the platform API
- Improved cleanup process on WebSocket reconnection
- Added Metadata key filter that was previously missing in belongsTo of SBDGroupChannelListQuery
- Disabled DB access if local caching is off
- Fixed WS connection being lost after switching from wifi to LTE
- Fixed objectEnumerator error when invoking channel change event
- Fixed error in console log when invoking channel change event
- Improved console logging when invoking channel change event
- Improved stability.
- Fixed a bug that returns the wrong token for changelogs in channel sync.
- Fixed crash in NSRunLoop.
- Improved stability.
- Fixed a bug for filtering public group channels in
SBDGroupChannelCollection
. - Added
SBDChannelHiddenStateFilterAll
. - Added mentioned users to pending messages.
- Removed Network.framework from Podspec.
- Fixed a crash bug.
- Fixed a bug that
belongsTo:
ofSBDMessageListParams
returns a wrong value.
- Improved stability.
- Improved stability.
- Fixed error with infinite calls of SBDMain.connect completion.
- Fixed issue where cachedMetadata is not serialized (not stored in database).
- Fixed issue with
getCachedMetadata()
in message collection.
- Fixed issue with
getCachedMetadata()
in local caching.
- Add custom type and super mode filter to
getTotalUnreadChannelCount
.
- Fix issue with local caching where messages were loading slowly.
- Fixed a bug where ACK_TIMEOUT(800180) errors were incorrectly being sent.
- Fixed issue with channel sync where channels created in the background did not properly load.
- Deprecated
SBDAuthenticateDelegate
andSBDConnectionManager
.
- Added
applyParentMessage:
method to update a parent message object in the child messages. - Fixed a bug where child messages' parent message wasn’t being updated.
- Improved stability of session management.
- Improved stability.
- Fixed a bug that the reply message isn't received when the network is reconnected.
- Fixed a bug that some messages are disappeared.
- Improved stability
- Local caching support. See Local Caching for details.
- Added
SBDMessageContext
class. - Added
SBDCollectionEventSource
enum. - Added
SBDMessageCollectionDelegate
protocol. - Added
SBDMessageCollection
class. - Added
SBDChannelContext
class. - Added
SBDGroupChannelCollection
class. - Added
SBDGroupChannelCollectionDelegate
protocol. - Added
SBDMessageCollectionInitPolicy
enum.
- Added
- Added Reply to Channel feature.
- Added enum
SBDReplyType
for loading messages with respect to message's reply messages. - Added
replyType
property inSBDMessageListParams
,SBDMessageChangeLogsParams
andSBDPreviousMessageListQuery
. - Deprecated
includeReplies
inSBDMessageListParams
,SBDMessageChangeLogsParams
andSBDPreviousMessageListQuery
. - Added
parentMessage
property inSBDBaseMessage
- Deprecated
includeParentMessageText
inSBDMessageListParams
,SBDMessageChangeLogsParams
,SBDMessageRetrievalParams
andSBDPreviousMessageListQuery
. - Deprecated
parentMessageText
inSBDBaseMessage
. - Added
isReplyToChannel
inSBDBaseMessage
- Added
isReplyToChannel
property inSBDBaseMessageParams
. - Added
belongsToMessageParams:
method inSBDMessageListParams
.
- Added enum
- Removed excluded architecture.
- Added
includeReactions
field inSBDMessageRetrievalParams
. - Fixed messageType not being copied in
SBDMessageListParams
. - Fixed
SBDMessageListParams belongsTo:(message)
,SBDMessageListParams belongsTo:(messageParams)
.
- Added
SBDRestrictionInfo
which contains information for users who are either muted or banned. - Added
SBDRestrictedUser
for muted or banned users, which containsSBDRestrictionInfo
. SBDMutedUserListQuery loadNextPageWithCompletionHandler:
andSBDBannedUserListQuery loadNextPageWithCompletionHandler:
will give aNSArray<SBDRestrictedUser *>
.SBDChannelDelegate channel: userWasMuted:
andSBDChannelDelegate channel: userWasBanned:
will give aSBDRestrictedUser
object.- Added
restrictionInfo
property inSBDMember
.
- Removed Network.framework and replaced it with legacy Reachability
- Improved stability
- Added
markAsReadWithCompletionHandler:
. - Deprecated
markAsRead
. - Fixed a bug that the result of
getMyGroupChannelChangeLogsWithToken:byTimestamp:params:completionHandler:
didn't include the read receipt data.
- Fixed typo.
- Added
metaDataKeyFilter
,metaDataValuesFilter
,metaDataValueStartsWithFilter
,setMetaDataFilterWithKey:values:
andsetMetaDataFilterWithKey:valueStartsWith:
inSBDGroupChannelListQuery
andSBDPublicGroupChannelListQuery
class. - Fixed a bug on
belongsTo:
inSBDMessageListParams
class.
- Deprecated methods. See DEPRECATED.md for more details.
getMessagesByTimestamp:params:completionHandler:
getMessagesById:params:completionHandler:
- all
getMessageChangeLogsWithToken ...
- all
getMessageChangeLogsByTimestamp ...
- Optimized Supergroup protocol handling to improve performance for specific use cases.
- Improved stability.
- Improved stability.
- Improved stability.
- Fixed cached meta data mutation issue
- Improved stability
- Added serialization for emoji class
- Fixed cached meta data eviction crash
- Changed native socket minimum requirement for iOS 14 and above due to Apple's Network framework bug in iOS 13
- Improved stability
- Removed
sharedApplication
usage - Set
Require only app-extension-safe api
flag to true - Improved stability
- Added
nicknameStartsWithFilter
property inSBDApplicationUserListQuery
- Exposed
initWithDictionary:
methods for SBD classes - Improved stability
- Used the native socket implementation NSURLSessionWebSocketTask by default for iOS 13 and above. The prior versions of SDK use SocketRocket implementation for websocket communication. We are moving to native framework due to better support. If there is a problem experienced with this release, please contact Sendbird support because this change can be overwritten by server side configuration. Sendbird support team will change the setting setting for you per application.
- Improved network latency issue
- Improved stability
- Supports xcframework and Swift Package Manager.
- Added new parameter for Apple Critical Alert to
SBDBaseMessageParams
class.
- Enabled bitcode.
- The minimum deployment target is 9.0.
- Added new delegates(
channelDidChangeMemberCount:
andchannelDidChangeParticipantCount:
) toSBDChannelDelegate
to receive the events that the member count and the participant count have been changed.
- Improved stability
- Improved stability
- Added
getCachedMetaData
inSBDBaseChannel
. - Added
includeMetaData
inSBDGroupChannelListQuery
,SBDPublicGroupChannelListQuery
,SBDOpenChannelListQuery
. - Fixed a bug that the message object in the search result was
SBDBaseMessage
class and thesender
of the message object wasnil
. - Improved stability.
- Added the methods below to
SBDGroupChannel
class.createChannelWithParams:progressHandler:completionHandler:
createDistinctChannelIfNotExistWithParams:progressHandler:completionHandler:
updateChannelWithParams:progressHandler:completionHandler:
- Fixed bug of
requestId
inSBDBaseMessage
object.
- Fixed member count bug of group channel.
- Improved stability
- Improved stability
- Fixed minor bug.
- Improved console logging.
- Generated an error for file size limit before sending file message.
- Fixed bug of setting the host for the connection.
- Deprecated
setPushPreferenceWithPushOn:completionHandler:
- Fixed channel cover image bug.
- Fixed a bug of resending message.
- Added
SBDOpenChannelParams
class - Added channel create and update functions with parameters in
SBDOpenChannel
class. - Modified the openChannelParams related test codes.
- Added
setAllowFriendDiscovery:completionHandler:
- Added
getAllowFriendDiscoveryWithCompletionHandler:
- When sending a file message with binary data, SDK will calculate the file size internally.
- Improved stability.
- Improved stability.
- Added SubChannel related properties
showSubChannelMessageOnly
property inSBDMessageListParams
classshowSubChannelMessageOnly
property inSBDPreviousMessageListQuery
class
- Improved stability.
- Added
buildFromSerializedData:desiredState:
inSBDBaseMessage
.
- Fixed a bug that the
isMuted
of a group channel member wasn't updated. - Added
getTypingUsers
method inSBDGroupChannel
class. - Deprecated
getTypingMembers
method inSBDGroupChannel
class.
- Fixed unread count bug.
- Improved stability.
- Fixed copying message bug
- Fixed
myMutedState
is always muted issue - Improved stability
- Added
creator
property inSBDBaseChannel
- Added
setWebSocketResponseTimeout:
toSBDOptions
class to set the response timeout value.
- Added
SBDMemberListOrder
for the member list query. - Added
isMuted
property inSBDMember
class - Added
applicationAttributes
property inSBDAppInfo
class - Activated
operationFilter
inSBDGroupChannelMemberListQuery
- Improved stability
- Improved stability
- Fixed memory allocation bug
- Improved stability
- Improved stability
- Added open graph feature along with
SBDOGMetaData
andSBDOGImage
class - Added
ogMetaData
property inSBDBaseMessage
- Fixed bug in
markAsDeliveredWithRemoteNotificationPayload:completion
- Improved stability
- Improved stability
- Fixed delegate validation mismatched
- Added
addOperatorsWithUserIds:completionHandler:
to add operators to channel. - Added
removeOperatorsWithUserIds:completionHandler:
andremoveAllOperatorsWithCompletionHandler:
to remove operators from channel. - Improved stability
- Fixed minor bug
- Fixed
markAsRead
unreadMessageCount bug
- Refactored
SBDBaseMessage
properties that need common access - Supported
NSCopying
protocol for common objects - Improved stability
- Added functions that creates a
SBDMessageChangeLogsParams
object withSBDPreviousMessageListQuery
andSBDMessageListParams
information. - Added a function that creates a
SBDGroupChannelChangeLogsParams
object withSBDGroupChannelListQuery
information. - Added
getUnreadMemberCount:
andgetUndeliveredMemberCount:
. - Improved stability.
- Fixed reconnection issue.
- Improved stability
- Improved delivery receipt
- Added
SBDGroupChannelChangeLogsParams
- Added
getMyGroupChannelChangeLogsByToken:params:completionHandler:
- Deprecated
getMyGroupChannelChangeLogsByToken:customType:completionHandler:
andgetMyGroupChannelChangeLogsByToken:customType:includeEmptyChannel:completionHandler
- Added
includeFronzeChannel
inSBDOpenChannelListQuery
- Fixed meta data completion type
- Fixed reaction bug.
- Added
deleteChannel
method in open channel - Added
AppInfo
class - Added emoji feature with
Emoji
,EmojiCategory
,EmojiContainer
class - Fixed type comparison in init methods
- Fixed to add
errorCode
in message's init methods
- Added
deleteMessageWithMessageId:completionHandler:
inSBDBaseChannel
- Fixed push register/unregister when no connection
- Deprecated
metaArrayKeys
inSBDBaseMessageParams
- Added
metaArrays
inSBDBaseMessageParams
- Added
addExtension
for UIKit
- Added
show_delivery_receipt
parameters. resendUserMessage()
,resendFileMessage()
returns the corresponding messages withPENDING
state.- Fixed minor bug.
- Improved stability.
- Renamed an enum value.
SBDErrorFileUploadCancelled
->SBDErrorFileUploadCanceled
- Improved stability.
- Defined a few errors for the failed message as resendable errors.
SBDErrorInternalServerError
(500901)SBDErrorRateLimitExceeded
(500910)SBDErrorMessagesRateLimitExceeded
(900200)
- Improved stability.
- Added new methods to get messages with message ID and inclusiveTimestamp option.
- Added
channelDidUpdateOperators:
in SBDChannelDelegate - Added
role
in SBDMember - Improved stability.
- Deprecated
requestState
ofSBDUserMessage
andSBDFileMessage
. - Deprecated
SBDMessageRequestState
. - Added
sendingStatus
toSBDUserMessage
andSBDFileMessage
. - Added
SBDMessageSendingStatus
.
- Fixed minor bug.
- Improved stability.
- Added missing headers.
- Added Reaction API.
- Fixed group channel update bug.
- Fixed bug about can't receive specific channelDelegate(leave, remove).
- Improved stability.
- Improved stability and fixed bug of webSocket
- Add forceUpdateLastMessage property to force set the message as the last message of a channel when true.
- Improved parsing stability.
- Added Message search feature.
- added class
SBDMessageSearchQuery
to search messages and create query. - added builder class
SBDMessageSearchQueryBuilder
to build aSBDMessageSearchQuery
.
- added class
- Modified increasing unread message count on super group channel.
- Added Delivery receipt feature.
- added methods
markAsDelivered
inSBDGroupChannel
andmarkAsDeliveredWithChannelUrl:
inSBDMain
to sending delivered state to channel. - added
channelDidUpdateDeliveryReceipt:
delegate to receive user’s message delivery confirms. - added
getDeliveryReceipt:
method to get undelivered member counts.
- added methods
- Added a method
isResendable
inSBDUserMessage
andSBDFileMessage
.resendUserMessage
andresendFileMessage
work only whenisResendable
istrue
.
- Added a property named
errorCode
inSBDUserMessage
andSBDFileMessage
.
- Fixed bug of lost items while copying files.
- Improved stability.
- Progress handler can be executed on the specific thread.
- New property
messageOffsetTimestamp
that tells the current user's message offset ofSBDGroupChannel
.
- Improved stability.
- Improved connection stability.
- Reporting APIs.
reportUser:reportCategory:reportDescription:completionHandler:
reportChannelWithCategory:reportDescription:completionHandler:
reportMessage:reportCategory:reportDescription:completionHandler:
- New user event of
didUpdateTotalUnreadMessageCount:totalCountByCustomType:
to handle total unread message count. - Improved stability.
- Improved stability.
- Fixed bug of updating channel metadata.
- Improved stability.
- Improved stability.
- Fixed a bug of registering remote push token in iOS 13
- New method to resend a file message in channel.
resendFileMessageWithMessage:binaryData:progressHandler:completionHandler:
resendFileMessageWithMessage:binaryData:completionHandler:
- New property to show requested mention user ids in user message, file message.
requestedMentionUserIds
- Improved connection stability.
- Improved connection stability.
- Fixed bug of thread management.
- On-demand translation that translate a text message into target languages.
- Improved
MetaArray
feature withSBDMessageMetaArray
class.- Add/remove meta array with an array of
SBDMessageMetaArray
. - Message has new property
metaArrays
that consists of an array ofSBDMessageMetaArray
.
- Add/remove meta array with an array of
- Enable to create group channel strictly.
SBDGroupChannelParams
has new property boolean type ofstrict
that can cause an error if any of users is not valid when creating a channel.
- Fixed a bug of network reachability.
- Improved stability.
- Fixed minor bug.
- Improved connection stability.
- New filter
searchFilter
ofSBDGroupChannelListQuery
. When you want to query a string forchannel name
ormember nickname
, use this filter. - Improved stability.
- Fixed a bug of internal timer.
- Added
resendUserMessage:completionHandler
to resend a failed message inSBDBaseChannel
. - New enum and property to represent message request state
SBDMessageRequestState
inSBDUserMessage
,SBDFileMessage
. EnumSBDMessageRequestStateNone
,SBDMessageRequestStatePending
,SBDMessageRequestStateFailed
,SBDMessageRequestStateMessage
. SBDBaseMessage
conformsNSCopying
.- Improved connection stability.
- Fixed minor bug.
- Fixed minor bug.
- Message request API with
inclusiveTimestamp
inSBDBaseChannel
- Improved stability
- Added
myLastRead
property toSBDGroupChannel
.
- Fixed the change of
invitedAt
ofSBDGroupChannel
. - Bug fix and stability improvement of WebSocket module.
- Added
deleteChannelWithCompletionHandler:
inSBDGroupChannel
.
- Added
discoverable
property toSBDGroupChannel
andSBDGroupChannelParams
.- if
discoverable
of a public group channel is set to false(NO), then the channel will not appear during querying withSBDPublicGroupChannelListQuery
. The default value ofdiscoverable
is true(YES).
- if
- Improved stability.
- Fixed connection minor issue.
- Improved stability.
- Improved stability.
- Fixed minor bug.
- Fixed minor bug.
- Added
setFileTransferTimeout:
inSBDOptions
class to set timeout for file transfer.
- Removed LLVM instrumentation.
- Divide push options for the detail triggers.
- New enum type of push trigger option,
SBDPushTriggerOption
andSBDGroupChannelPushTriggerOption
. - Added
[SBDMain setPushTriggerOption:completionHandler:]
and[SBDMain getPushTriggerOptionWithCompletionHandler:]
class methods to set/get whether the current user receives remote push notification in the whole group channel. - Added
setMyPushTriggerOption:completionHandler:
andgetMyPushTriggerOptionWithCompletionHandler:
instance methods inSBDGroupChannel
. It sets/gets whether the current user receives remote push notification in the group channel.
- New enum type of push trigger option,
- Snooze or Stop snooze remote push notification in specific duration.
- Added
[SBDMain setSnoozePeriodEnable:startTimestamp:endTimestamp:completionHandler:]
class methods to start or stop snooze period. - Added
[SBDMain getSnoozePeriod:]
class methods to get snooze period.
- Added
- Fixed bug of connection.
- Bitcode support for Xcode 9.
- Fixed bug about unread message count subscription.
- Fixed bug that can't toggle distinct channel.
- Fixed bug that updates unchanged properties of channel or message.
- Added
createDistinctChannelIfNotExistWithParams:completionHandler:
method inSBDGroupChannel
.- It creates distinct channel and gets the channel with
isCreated
incompletionHandler
which represents whether the channel is actually created or not.
- It creates distinct channel and gets the channel with
- Added
getMessageChangeLogsByTimestamp:completionHandler:
method inSBDBaseChannel
.- It retrieves message change logs since the given timestamp.
- Added
hiddenState
type ofSBDGroupChannelHiddenState
property inSBDGroupChannel
to get channel's hidden state.SBDGroupChannelHiddenStateUnhidden
: It's not hidden channel.SBDGroupChannelHiddenStateHiddenAllowAutoUnhide
: It's hidden channel which is automatically unhidden when new message comes in.SBDGroupChannelHiddenStateHiddenPreventAutoUnhide
: It's hidden channel which is not unhidden when new message comes in.
- Added
hideChannelWithHidePreviousMessages:allowAutoUnhide:completionHandler:
method to allow automatic unhide on new message inSBDGroupChannel
. - Added
unhideChannelWithCompletionHandler:
method inSBDGroupChannel
to unhide manually the channel. - Added
channelHiddenStateFilter
property type ofSBDChannelHiddenStateFilter
inSBDGroupChannelListQuery
to filter byhiddenState
.SBDChannelHiddenStateFilterUnhiddenOnly
: Get all unhidden channels. (default)SBDChannelHiddenStateFilterHiddenOnly
: Get all hidden channels whichhiddenState
isSBDGroupChannelHiddenStateHiddenAllowAutoUnhide
orSBDGroupChannelHiddenStateHiddenPreventAutoUnhide
.SBDChannelHiddenStateFilterHiddenAllowAutoUnhide
: Get channels whichhiddenState
isSBDGroupChannelHiddenStateHiddenAllowAutoUnhide
.SBDChannelHiddenStateFilterHiddenPreventAutoUnhide
: Get channels whichhiddenState
isSBDGroupChannelHiddenStateHiddenPreventAutoUnhide
.
SBDGroupChannelParams
conformsNSCopying
.- Minor bug fixed
- Changed type of
sender
property inSBDUserMessage
andSBDFileMessage
fromSBDUser
to a new classSBDSender
which extendsSBDUser
.SBDSender
hasisBlockedByMe
property which indicates that the message sender is blocked by the current user (default: false).isBlockedByMe
is valid inSBDGroupChannel
only.- Message from blocked users is delivered only when
block_mode
inApplication
is set toexplicit
mode. Otherwise, it's not visible nor delivered.
- Minor bug fixed.
- Separated
SBDUserListQuery
into the following query classes according to its specific role.- Added
SBDApplicationUserList
as a substitute forSBDUserListQuery
(Recommended). - Added
SBDBlockedUserListQuery
,SBDBannedUserListQuery
,SBDMutedUserListQuery
,SBDParticipantListQuery
. - Added properties of
metaDataKeyFilter
,metaDataValuesFilter
,userIdsFilter
inSBDApplicationUserListQuery
.
- Added
- Guaranteed the order of sending
SBDFileMessage
regardless of bulk file messages or a single file message. - Minor bug fixed
- Added
SBDScheduledUserMessage
feature to sendSBDUserMessage
at the time specified by a user.- Added
SBDScheduledUserMessage
that is a scheduledSBDUserMessage
. - Added
SBDScheduledUserMessageParams
to be delivered as a parameter to register scheduledSBDUserMessage
. - Added
registerScheduledUserMessageWithParams:completionHandler:
inSBDGroupChannel
to register scheduledSBDUserMessage
.
- Added
- Improved stability.
- Minor bug fixed
- Added duration and a description to user mute.
- Added an ordering group channel with meta data value of specific key.
- Minor bug fixed.
- Added a getter
getLastConnectedAt
that returns the current user's latest connection time.
- Improved stability.
- Added a method
getReadStatusIncludingAllMembers:
that gets readStatus in the group channel. - Added a method
getReadMembersWithMessage:includeAllMembers:
that returns a list of members who read the message in the group channel. - Added a method
getUnreadMembersWithMessage:includeAllMembers:
that returns a list of members who did not read the message in the group channel. - Enabled to use
isEqual:
in Channel classes (SBDBaseChannel
,SBDGroupChannel
,SBDOpenChannel
), Message classes (SBDBaseMessage
,SBDUserMessage
,SBDFileMessage
,SBDAdminMessage
), User classes (SBDUser
,SBDMember
) to compare deep-equality with other instance. - Fixed connection method (ex.
connectWithUserId:accessToken:completionHandler:
) so that can receive call-back with an error whendisconnectWithCompletionHandler:
was called while connecting to SendBird. - Changed setters of filter in query class (
SBDGroupChannelListQuery
,SBDGroupChannelMemberListQuery
,SBDOpenChannelListQuery
,SBDPreviousMessageListQuery
,SBDPublicGroupChannelListQuery
,SBDUserListQuery
) into properties. - Minor bug fixed.
- Deprecated some feature.
- Deprecated method
getReadMembersWithMessage:
inSBDGroupChannel
. - Deprecated method
getUnreadMembersWithMessage:
inSBDGroupChannel
. - Deprecated method
getReadStatus
inSBDGroupChannel
. - Deprecated enum
SBDWebSocketClosing
inSBDWebSocketConnectionState
.
- Deprecated method
- Minor bug fixed.
- From now,
useMemberAsMessageSender
option is YES by default. - Fixed a bug previous messages not showing the senders' latest user metadata.
- Minor bug fixed.
- Added
updateUserMessageWithMessageId:userMessageParams:completionHandler:
withSBDUserMessageParams
inSBDBaseChannel
. - Added
updateFileMessageWithMessageId:fileMessageParams:completionHandler:
withSBDFileMessageParams
inSBDBaseChannel
. - Minor bug fixed.
- Improved connection management.
- Added
invitedAt
inSBDGroupChannel
.
- Added
loadWithCompletionHandler:
,setMessageTypeFilter:
,setCustomTypeFilter:
,setSenderUserIdsFilter:
inSBDPreviousMessageListQuery
. - Added
getNextMessagesByTimestamp:limit:reverse:messageType:customType:senderUserIds:completionHandler:
,getPreviousMessagesByTimestamp:limit:reverse:messageType:customType:senderUserIds:completionHandler:
,getPreviousAndNextMessagesByTimestamp:prevLimit:nextLimit:reverse:messageType:customType:senderUserIds:completionHandler:
,getNextMessagesByMessageId:limit:reverse:messageType:customType:senderUserIds:completionHandler:
,getPreviousMessagesByMessageId:limit:reverse:messageType:customType:senderUserIds:completionHandler:
, andgetPreviousAndNextMessagesByMessageId:prevLimit:nextLimit:reverse:messageType:customType:senderUserIds:completionHandler:
inSBDBaseChannel
.
- Disabled to put the current user into
mentionedUsers
,mentionedUserIds
inSBDUserMessageParams
andSBDFileMessageParams
. - Changed not to increase
unreadMentionCount
and not to callchannel:didReceiveMention:
for CHANNEL mention by the current user (i.e. the message sender is the current user).
- Added
unreadMentionCount
property inSBDGroupChannel
. - Added enum
SBDCountPreferenceUnreadMentionCountOnly
inSBDCountPreference
. - Added
SBDUnreadItemKeyNonSuperUnreadMentionCount
,SBDUnreadItemKeySuperUnreadMentionCount
, SBDUnreadItemKeyGroupChannelUnreadMessageCount,
SBDUnreadItemKeyGroupChannelUnreadMentionCount,
SBDUnreadItemKeyGroupChannelInvitationCountin
SBDUnreadItemKey`. - Added mention type.
- New enum type
SBDMentionType
that hasSBDMentionTypeUsers
andSBDMentionTypeChannel
. - New property in
SBDBaseMessage
.
- New enum type
- Deprecated instance method,
getUnreadItemCountWithKey:completionHandler:
inSBDGroupChannel
.- Replaced with class method
getUnreadItemCountWithKey:completionHandler:
inSBDGroupChannel
instead.
- Replaced with class method
- Minor bug fixed.
- Added
nicknameStartsWithFilter
inSBDGroupChannelMemberListQuery
. - Added enum
SBDCountPreference
.- Enum has
SBDCountPreferenceAll
,SBDCountPreferenceUnreadMessageCountOnly
,SBDCountPreferenceOff
. - Added
myCountPreference
inSBDGroupChannel
as a getter. - Added
setMyCountPreference:completionHandler:
inSBDGroupChannel
as an aynchronous setter.
- Enum has
- Fixed a bug that
myRole
is not updated inSBDGroupChannel
.
- Added
joinedMemberCount
to get count of member joined inSBDGroupChannel
. - Added
myMutedState
to show whether the current user is muted or not inSBDGroupChannel
. - Added an api of
getUnreadItemCountWithKey:completionHandler:
inSBDGroupChannel
.- The api gets an instance of
SBDUnreadItemCount
that contains properties ofnonSuperUnreadMessageCount
,superUnreadMessageCount
,nonSuperInvitationCount
,superInvitationCount
. - As a parameter, bitmask
SBDUnreadItemKey
is used. It hasSBDUnreadItemKeyNonSuperUnreadMessageCount
,SBDUnreadItemKeySuperUnreadMessageCount
,SBDUnreadItemKeyNonSuperInvitationCount
,SBDUnreadItemKeySuperInvitationCount
.
- The api gets an instance of
- Added a setter for typing indicator throttling interval.
- Fixed a minor bug for
buildFromSerialize:
- Fixed a minor bug when uploading file in background.
- Fixed a minor bug when uploading file in background.
- Fixed an occasional member count mismatch in a super group channel.
- Added a property named
myRole
in theSBDGroupChannel
which is a role of current user in the group channel. - Added
SBDGroupChannelTotalUnreadMessageCountParams
class that is used to get total unread message count.
- Ordered member list by nickname alphabetically.
- Fixed a bug that an encrypted file url contains duplicated query keys.
- Fixed minor bug.
- Fixed minor bug.
- Deprecated
SBDGroupChannelOperatorFilter
inSBDGroupChannelMemberListQuery
. - Added
createOperatorListQuery
inSBDBaseChannel
to query users who are operators in the channel. - Removed internal methods.
- Changed code convention in headers.
- Updated project build setting.
- Minor bug fix.
- Added
SBDPushNotificationDeliveryOption
to determine how to deliver the push notification when sending a user or a file message. - Added a method that gets a unread message count with custom types of group channel.
- Changed an ephemeral
SBDGroupChannel
to maintain fields oflastMessage
andunreadMessageCount
after connected.
- Fixed a bug that can't send file message with a binary file.
- Added mentioning to specific user.
- added channel delegate,
channel:didReceiveMention:
, which is called when the current user is mentioned. - added a property named
mentionedUsers
which means the users received mention together.
- added channel delegate,
- Added ephemeral group channel.
- added a property named
isEphemeral
inSBDBaseChannel
. - added a property named
isEphemeral
inSBDGroupChannelParams
.
- added a property named
- Added api that can message with an instance of MessageParams .
- added
SBDUserMessageParams
,SBDFileMessageParams
based onSBDBaseMessageParams
to message. - added an api,
sendUserMessageWithParams:completionHandler:
, used to send user message with message params. - added apis,
sendFileMessageWithParams:completionHandler:
andsendFileMessageWithParams:progressHandler:completionHandler:
, used to send file message with message params.
- added
- Added member's state in group channel.
- added a property named
myMemberState
type ofSBDMemberState
which means state of member inSBDGroupChannel
. - added
SBDMemberStateNone
type of enum SBDMemberState.
- added a property named
- Added
setConnectionTimeout:
to configure websocket timeout. - Removed
SBDChannelEvent.h
andSBDCommand.h
.
- Changed channel 6 delegates parameter type from
SBDOpenChannel
toSBDBaseChannel
- changed from
channel:(SBDOpenChannel * _Nonnull)sender userWasMuted: (SBDUser * _Nonnull)user
tochannel:(SBDBaseChannel * _Nonnull)sender userWasMuted:(SBDUser * _Nonnull)user
- changed from
channel:(SBDOpenChannel * _Nonnull)sender userWasUnmuted:(SBDUser * _Nonnull)user
tochannel:(SBDBaseChannel * _Nonnull)sender userWasUnmuted:(SBDUser * _Nonnull)user
- changed from
channel:(SBDOpenChannel * _Nonnull)sender userWasBanned:(SBDUser * _Nonnull)user
tochannel:(SBDBaseChannel * _Nonnull)sender userWasBanned:(SBDUser * _Nonnull)user
- changed from
channel:(SBDOpenChannel * _Nonnull)sender userWasUnbanned:(SBDUser * _Nonnull)user
tochannel:(SBDBaseChannel * _Nonnull)sender userWasUnbanned:(SBDUser * _Nonnull)user
- changed from
channelWasFrozen:(SBDOpenChannel * _Nonnull)sender
tochannelWasFrozen:(SBDBaseChannel * _Nonnull)sender
- changed from
channelWasUnfrozen:(SBDOpenChannel * _Nonnull)sender
tochannelWasUnfrozen:(SBDBaseChannel * _Nonnull)sender
- changed from
- Moved property named
isFrozen
from SBDOpenChannel to SBDBaseChannel - Fixed error enum type.
- Removed warning signals.
- Added
setSharedContainerIdentifier:
inSBDMain
to set shared container identifier of background session configuration for App Extension - Added PublicGroupChannel features.
- new SBDPublicGroupChannelListQuery class.
- added
isPublic
in SBDGroupChannel to flag public group channel or private group channel. - added
createPublicGroupChannelListQuery
in SBDGroupChannel to create public group channel list query. - added
joinWithCompletionHandler:
in SBDGroupChannel to join public group channel. - added filters
publicChannelFilter
,customTypeStartsWithFilter
in SBDPublicGroupChannelListQuery. - added enum
SBDGroupChannelPublicChannelFilter
-SBDGroupChannelPublicChannelFilterAll
,SBDGroupChannelPublicChannelFilterPublic
,SBDGroupChannelPublicChannelFilterPrivate
. - added enum
SBDPublicGroupChannelMembershipFilter
-SBDPublicGroupChannelMembershipFilterAll
,SBDPublicGroupChannelMembershipFilterJoined
.
- Added
channelUrl
in SBDGroupChannelParams to create group channel with explicit channel url. - Added
SBDGroupChannelListOrderChannelNameAlphabetical
inSBDGroupChannelListOrder
enum. - Added enum
SBDPublicGroupChannelListOrder
-SBDPublicGroupChannelListOrderChronological
,SBDPublicGroupChannelListOrderChannelNameAlphabetical
. - Removed
SBDLogLevelDebug
in log level. - Improved socket connection.
- Added
setSharedContainerIdentifier:
inSBDMain
to set shared container identifier of background session configuration for App Extension
- Fixed SBDGroupChannel instance method name
getUnreadMemebersWithMessage:
togetUnreadMembersWithMessage:
. - Fixed nullability of
init
in SBDFriendListQuery. - Deprecated SBDGroupChannel instance methods -
getLastSeenAtByUser:
,getLastSeenAtByUserId:
. - Added SBDGroupChannelParams to create or update group channel.
- added
createChannelWithParams:completionHandler:
in SBDGroupChannel to create group channel with params. - added
updateChannelWithParams:completionHandler:
in SBDGroupChannel to update group channel with params.
- added
- Added SBDGroupChannelMemberListQuery to query member list in group channel.
- added
createMemberListQuery
in SBDGroupChannel to create member list query instance.
- added
- Added SuperGroupChannel features.
- added
isSuper
in SBDGroupChannel to flag super group channel or not. - added enum
SBDGroupChannelSuperChannelFilter
-SBDGroupChannelSuperChannelFilterAll
,SBDGroupChannelSuperChannelFilterSuper
,SBDGroupChannelSuperChannelFilterNonSuper
. - added
superChannelFilter
in SBDGroupChannelListQuery to filter super group channel.
- added
- Removed
coverImageName
in SBDGroupChannelParams
- Improved file upload.
- Fixed a bug of updating channel.
- Added dirty flag for cache in SBDGroupChannel, SBDOpenChannel.
- Moved
markAsReadAllWithCompletionHandler:
from SBDGroupChannel to SBDMain. - Added
markAsReadWithChannelUrls:completionHandler:
in SBDMain to mark ad read some channels. - Added member state filter enum -
SBDMemberStateFilterInvitedByFriend
,SBDMemberStatefilterInvitedByNonFriend
. - Changed notification key in SBDReachability not to conflict duplicate.
- Changed callback parameters of
getFriendChangeLogsByToken:completionHandler:
. CombinedaddedUsers
andupdatedUsers
toupdatedUsers
. - Change unread message count behavior.
- Updated SocketRocket library.
- Fixed SocketRocket library not working with 'MyDataManager' application.
- Improved routing.
- Improved socket connection.
- Added
setCustomTypesFilter
inSBDGroupChannelListQuery
to search group channels. - Added
originalProfileUrl
inSBDUser
for getting original profile image. - Added Friend feature.
addFriendsWithUserIds:completionHandler:
adds friends with friends' user IDs.deleteFriendWithUserId:completionHandler:
deletes a friend with a friend's user ID.deleteFriendsWithUserIds:completionHandler:
deletes friends with friends' user IDs.deleteFriendWithDiscovery:completionHandler:
deletes friend's discovery key.deleteFriendsWithDiscoveries:completionHandler:
deletes friends' discovery keys.uploadFriendDiscoveries:completionHandler:
adds friend using discovery key.getFriendChangeLogsByToken:completionHandler:
gets the logs about changing friend relation.createFriendListQuery
creates aSBDFriendListQuery
object for getting friend list.addUserEventDelegate:identifier:
adds delegate for receiving user event.removeUserEventDelegateForIdentifier:
removes user event delegate with identifier.removeAllUserEventDelegates
removes all user event delegate.SBDUserEventDelegate
: user event delegate.
- From now, even when you call
connectWithUserId:...
before the previousconnectWithUserId:...
finishes, all of them get called back for the connection establishment result at the same time.
- Fixed file uploading bug.
- Fixed connection bug.
- Fixed
state
ofSBDMember
bug.
- Added
isActive
property toSBDUser
.
- Fixed bug.
- Added
channelWasHidden:
delegate toSBDChannelDelegate
for a channel hidden event.
- Added a group channel hidden event.
- Added
isHidden
property to a group channel.
- Fixed bug of file message's custom type.
- Turned off LLVM profiling and code coverage options.
- Bitcode support.
- DO NOT USE THIS VERSION
- Fixed reconnection bug.
- Fixed message parsing bug.
- Added a method to count my group channels.
- Added a method to reset the group channel history.
- Added user block flags to a member of group channels.
- Added a method to get message changelogs.
- Deprecated filters of channel list query as properties.
- Added methods for filters of channel list query.
- Added new option to the method to hide a group channel for hiding the previous messages when the channel was hidden.
- Added freeze state to open channel.
- Added user meta data.
- Added meta data filter to user list query.
- Set default value to channel data.
- Added conditions to avoid null value when channel instance is updated.
- Fixed URL encoding bug.
- Fixed memory leak.
- Added events for changing meta counters and meta data.
- Added channel url filter for group channel list query.
- Fixed serialization bug.
- Fixed serialization bug.
- Added methods to copy a user message and a file message to another channel.
- Added
SBDMember
class for an invitation. - Changed member objects of
SBDGroupChannel
toSBDMember
objects. - Added the methods to accept and decline an invitation to
SBDGroupChannel
object. - Added
SBDMemberStateFilter
for group channel list query. - Added the methods to set and get the channel invitation preference for automatic acceptance.
- Added
channel:userDidJoin:inviter:
delegate for invitation acceptance. - Added
channel:didReceiveInvitation:inviter:
delegate for an invitation.
- Added a setter and a getter for push sound.
- Added custom type filter to channel query.
- Fixed bug of participant count in open channel.
- Added a channel URL parameter to a method to create an open channel.
- Added methods to update a user message and a file message.
- Added a delegate to receive the event for message updating.
- Added a method to cancel uploading file message.
- Improved connection performance.
- Only iOS 8.0 or later is supported from this version.
Podfile
has to be updated for dynamic frameworks like this:
platform :ios, '8.0'
use_frameworks!
target YOUR_PROJECT_TARGET do
pod 'SendBirdSDK'
end
-
This is the biggest release since our initial v3 release. Some of changes should be carefully taken when you update the SDK.
-
Now every completion handler/delegates in SDK is returned to MAIN THREAD queue. It used to be inconsistent so some were returned to main thread and others to background thread. Be aware that you shouldn't call any blocking/long running job without using custom background queue in our completion handler/delegates!!!!
For your convenience we added the methods to set default dispatch queue for every delegates and completion handlers. The queue can be changed like this:
[SBDMain setCompletionHandlerDelegateQueue:dispatch_get_main_queue()];
or
[SBDMain setCompletionHandlerDelegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
- The auto reconnection is also triggered with network awareness. The default option is on but you might want to turn it off if you have manual network detection to call reconnect(). It can be turned on or off like this:
[SBDMain setNetworkAwarenessReconnection:YES];
or
[SBDMain setNetworkAwarenessReconnection:NO];
- Now we support file uploading in background so you can send very large files.
- Improved connection speed.
- Fixed serialization bug.
- Fixed unread message count bug.
- Fixed unread message count sync problem.
- Added a method to get total unread channel count.
- Added option for sync member in group channel and sender of message.
- Added accurate error.
- Fixed unread count bug of group channel.
- Added message type and custom type options for getting messages.
- Added serialization for SBDUser, SBDBaseChannel, and SBDBaseMessage object.
- Fixed bugs of send user message and file message.
- Added file encryption.
- Fixed connection bug.
- Fixed bug of updating meta counter of channel.
Note that we don't return result objects anymore when there's an error in completion handlers starting from this version. Please make sure that you don't use a result object when an error occurs after updating SDK.
- Fixed bug of thumbnail image in file message.
- Added a method to run reconnection.
- Improved unread message count management.
- Added error for uninitialized class.
- Improved usability of channel delegates and connection delegates.
- Modified network error code.
- Added error code for network error.
- More accurate connection state.
- Fixed the bug of unread message count in group channel.
- Added file name parameter to the message for sending file with URL.
- Added file path parameter to the methods which are for uploading file.
- Added the class to represent a thumbnail max size.
- Fixed the bug of the group channel's data.
- Added the feature for generating the thumbnail of the image file message.
- Added a feature that sets a push notification template.
- Fixed channel URL and user ID encoding bug.
- Fixed bug of creating group channel with distinct option.
- Added
unique
option to push registration.
- Fixed bug of unread message count of group channel.
- Added
isPushEnabled
property toSBDGroupChannel
in order to represent the push notification configuration. - Deprecated
getPushPreferenceWithCompletionHandler:
ofSBDGroupChannel
.
- Fixed bug of unread message count and last message of group channel.
- Added user IDs filters and query type to
SBDGroupChannelListQuery
. - Added channel custom type for
SBDOpenChannel
andSBDGroupChannel
. - Fixed to call
channelWasChanged:
delegate when unread message count or last message has been updated. - Fixed bug of reconnection for
SBDOpenChannel
.
- Fixed bug of last message of group channels.
- Fixed connection bug.
- Added group channel list search by a member nickname. (Search by multiple nicknames option in v3.0.15 is no more supported.)
- Added auto-translating feature to SBDUserMessage.
- Improved connection performance.
- Added custom type to messages.
- Added group channel list search by member nicknames and user IDs.
- Added creating and updating channel cover image with binary file.
- Fixed URL encoding bug.
- Fixed minor bug.
- Support Base SDK 9.3
- Fixed bug of the channel type of messages.
- Support Carthage.
- Fixed unread message count bug.
- Fixed minor bugs.
- Fixed bug of disconnection and reconnection (APNS-related bug).
- Removed validation of sending a user message.
- Added a channel type to messages from a message query.
- Fixed bug of
data
ofSBDFileMessage
. - Added a method to get user list with user IDs(
+ createUserListQueryWithUserIds:
ofSBDMain
). - Added a method to register a APNS device token without login(
+ registerDevicePushToken:completionHandler:
ofSBDMain
). - Added keywords for open channel name and URL search(
urlKeyword
andnameKeyword
ofSBDOpenChannelListQuery
). - Added a method to get a total unread message count(
+ getTotalUnreadMessageCountWithCompletionHandler:
ofSBDGroupChannel
). - Added a method to get a last timestamp when a user read at the channel(
- getLastSeenAtByUser:
and- getLastSeenAtByUserId:
ofSBDGroupChannel
). - Added a method to get members who read the message(
- getReadMembersWithMessage:
ofSBDGroupChannel
). - Added a method to get members who did not read the message(
- getUnreadMemebersWithMessage:
ofSBDGroupChannel
). - Added a method to get the read status(
- getReadStatus
ofSBDGroupChannel
). - Added methods to set push preference(
- setPushPreferenceWithPushOn:completionHandler:
and- getPushPreferenceWithCompletionHandler:
ofSBDGroupChannel
.+ setDoNotDisturbWithEnable:startHour:startMin:endHour:endMin:timezone:completionHandler:
and+ getDoNotDisturbWithCompletionHandler:
ofSBDMain
). - Deprecated
+ registerPushToken:completionHandler:
ofSBDMain
.
- Fixed group channel unread count bug.
- Fixed minor bug.
- Added URL encoding to API parameters.
- ** DO NOT USE THIS VERSION **
- Removed duplicated symbols.
- Removed duplicated symbol.
- Updated version.
- Fixed reconnection bug.
- First release.