iOS SDK v7.0.0 Migration Guide
This guide is to provide information about breaking changes and how to migrate from 6.x.x version to v7.0.0. AmitySDK 7.0.0 is the major release of our SDK.
Installation
Manual Installation
For those migrating from AmitySDK v5 to v7, manual installation now requires including RealmSwift.xcframework alongside the existing frameworks.

Interface Changes
AmityPostFlagger
Removed
Use apis in AmityPostRepository instead
AmityCommentFlagger
Removed
Use apis in AmityCommentRepository instead
AmityMessageFlagger
Removed
Use apis in AmityMessageRepository instead
AmityUserFlagger
Removed
Use apis in AmityUserFlagger instead
AmityChannelParticipation
Removed
Use apis in AmityChannelMembership class instead
AmityCommunityParticipation
Removed
Use apis in AmityCommunityMembership instead
AmityCommentEditor
Removed
Use apis in AmityCommentRepository instead
AmityMessageEditor
Removed
Use apis in AmityMessageRepository instead
enum AmityCommunityType
Removed
-
AmityUserFollowManager
Removed
Use apis in AmityUserRelationship class instead
StoryTargetSearchInfo
Removed
Renamed to AmityStoryTargetSearchInfo
enum AmityFollowStatus: Int
Removed
No changes needed
AmityClient
currentUser
Removed
Use user instead
totalUnreadCount: Int
Removed
Use getUserUnread() instead
startUnreadCountSync()
Removed
Refer to this unread count documentation: https://docs.social.plus/social-plus-sdk/chat/channels/unread-count
stopUnreadCountSync()
Removed
Refer to this unread count documentation: https://docs.social.plus/social-plus-sdk/chat/channels/unread-count
startUnreadSync()
Removed
Refer to this unread count documentation: https://docs.social.plus/social-plus-sdk/chat/channels/unread-count
stopUnreadSync()
Removed
Refer to this unread count documentation: https://docs.social.plus/social-plus-sdk/chat/channels/unread-count
syncUnreadCount()
Removed
Refer to this unread count documentation: https://docs.social.plus/social-plus-sdk/chat/channels/unread-count
registerDeviceForPushNotification(withDeviceToken:,completion:_)
Removed
Use registerPushNotification instead
registerDeviceForPushNotification(withDeviceToken:_) async throws
Removed
Use registerPushNotification instead
unregisterDeviceForPushNotification(forUserId:,completion:_)
Removed
Use unregisterPushNotification() instead
unregisterDeviceForPushNotification(forUserId:_) async throws
Removed
Use unregisterPushNotification() instead
unregisterPushNotification(forUserId:_) async
Removed
Use unregisterPushNotification() instead
updateUser(builder:_) async throw
Removed
Use editUser() instead
updateUser(builder:,completion:_)
Removed
Use editUser() instead
AmityStreamRepository
createVideoStream(withTitle:,description:,thumbnailImage:,meta:,completion:_)
Removed
Use createStream(title:,description:,thumbnailImage:,meta:_) async throws instead
getStreamById(_ streamId:_)
Removed
Use getStream(streamId:_) instead
getStreamsCollection(query:_)
Removed
Use getStreams(query:_) instead
AmityChannel
messageCount: Int
Removed
Use messageCount from AmitySubChannel instead
participation: AmityChannelParticipation
Removed
Use membership instead
unreadCount: Int
Removed
Use subChannelsUnreadCount instead or unreadCount from AmitySubChannel instead
hasMentioned: Bool
Removed
Use isMentioned instead
defaultSubChannelUnreadCount: Int
Removed
Use subChannelsUnreadCount instead or unreadCount from AmitySubChannel instead
AmitySubChannel
hasMentioned: Bool
Removed
Use isMentioned instead
startReading()
Removed
Use startMessageReceiptSync method in AmitySubChannelRepository instead
stopReading()
Removed
Use stopMessageReceiptSync method in AmitySubChannelRepository instead
AmityObject
object: T
Removed
Use snapshot instead
AmityChannelRepository
totalDefaultSubChannelUnreadCount: Int
Removed
Use getUserUnread() from AmityClient instead
updateChannel(_:)
Removed
Use editChannel() instead.
AmityCommunity
participation: AmityCommunityParticipation
Removed
Use membership instead
AmityCommentRepository
deleteComment(withId:_,hardDelete:_,completion:_)
Removed
Use softDeleteComment(commentId:_) async throws -> Bool or hardDeleteComment(commentId:_) async throws -> Bool instead
createComment(with:_,completion:_)
Removed
Use createComment(options:_) async throws instead
updateComment(withId:,options:,completion:_)
Removed
Use editComment(commentId:_,options:_) async throws -> AmityComment instead
updateComment(withId:,options:_) async throws
Removed
Use editComment(commentId:_,options:_) async throws -> AmityComment instead
getLatestComment(withReferenceId:,referenceType:_,includeReplies:_)
Removed
getLatestComment(referenceId:_,referenceType:_,includeReplies:_) async throws -> AmityComment instead
AmityPollRepository
createPoll(options:,completion:_)
Removed
Use createPoll(options:_) async throws -> String instead
closePoll(withId:,completion:_)
Removed
Use closePoll(pollId:_) async throws -> Bool instead
votePoll(withId:,answerIds:,completion:_)
Removed
Use votePoll(pollId:,answerIds:) async throws -> Bool instead
deletePoll(withId:,completion:_)
Removed
Use deletePoll(pollId:_) async throws -> Bool instead
AmityFeedRepository
getCustomPostRankingGlobalfeed()
Removed
Use getCustomRankingGlobalFeed() -> AmityCollection<AmityPost> instead.
UserUnread
hasMentioned
Removed
Use isMentioned instead
AmityPostRepository
createPost(_ builder:_,targetId:_,targetType:_,completion:_)
Removed
Use dedicated APIs such as createTextPost,createImagePost,createFilePost,createVideoPost,createPollPost and createLiveStreamPost instead.
createPost(_ builder:_,targetId:_,targetType:_) async throws
Removed
Use dedicated APIs such as createTextPost,createImagePost,createFilePost,createVideoPost,createPollPost and createLiveStreamPost instead.
createPost(_ builder:_,targetId:_,targetType:_,metadata:_,mentionees:_,completion:_)
Removed
Use dedicated APIs such as createTextPost,createImagePost,createFilePost,createVideoPost,createPollPost and createLiveStreamPost instead.
createPost(_ builder:_,targetId:_,targetType:_,metadata:_,mentionees:_) async throws
Removed
Use dedicated APIs such as createTextPost,createImagePost,createFilePost,createVideoPost,createPollPost and createLiveStreamPost instead.
updatePost(withId postId:_,builder:_,completion:_)
Removed
Use func editPost(postId:,builder:) async throws -> AmityPost instead.
updatePost(withId postId:_,builder:_,metadata:_,mentionees:_,completion:_)
Removed
Use func editPost(postId:,builder:,metadata:,mentionees:) async throws -> AmityPost instead.
deletePost(withId postId:_,parentId:_,hardDelete:_,completion:_)
Removed
Use softDeletePost(postId:,parentId:) async throws -> Bool to soft delete post and hardDeletePost(postId:,parentId:) async throws -> Bool instead
approvePost(withId postId:_,completion:_)
Removed
Use func approvePost(postId:) async throws -> Bool instead.
declinePost(withId postId:_,completion:_)
Removed
Use func declinePost(postId:) async throws -> Bool instead.
AmityCommunityMembership
getMembers(membershipOptions:_,roles:_,sortBy:_)
Removed
Use getMembers(filter: AmityCommunityMembership.QueryFilter,roles: [String],sortBy: AmityCommunityMembershipSortOption,includeDeleted: Bool = true) instead
searchMembers(keyword:_,membership membershipOptions:_,roles:_,sortBy:_)
Removed
Use searchMembers(keyword: String,filter: [AmityCommunityMembership.SearchFilter],roles: [String],sortBy: AmityCommunityMembershipSortOption,includeDeleted: Bool = true) instead
searchMembers(keyword:_,filter:_,roles:_) -> AmityCollection<AmityCommunityMember>
Removed
Use searchMembers(keyword: String,filter: [AmityCommunityMembership.SearchFilter],roles: [String],sortBy: AmityCommunityMembershipSortOption,includeDeleted: Bool = true) instead
AmityCommunityModeration
banMembers(_ userIds:_,completion:_)
Removed
Use func banMembers(userIds:) async throws -> Bool instead.
unbanMembers(_ userIds:_,completion:_)
Removed
Use func unbanMembers(userIds:) async throws -> Bool instead.
addRoles(_ roles:_,userIds:_,completion:_)
Removed
Use func addRoles(roles:,userIds:) async throws -> Bool instead.
removeRoles(_ roles:_,userIds:_,completion:_)
Removed
Use func removeRoles(roles:,userIds:) async throws -> Bool instead.
AmityRegion
case global
Removed
-
AmityEndpoint
init(httpUrl:_, rpcURL:_, mqttHost:_, uploadUrl:_)
Removed rpcURL
Use init(httpUrl:_, mqttHost:_, uploadUrl:_)
AmityReaction
reactorId
Removed
Use userId from creator object.
reactorDisplayName
Removed
Use displayName from creator object.
AmityReactionRepository
addReaction(_ reaction:_,referenceId contentId:_,referenceType type:_,completion:_)
Removed
Use func addReaction(reaction:,referenceId:,referenceType:) async throws -> Bool instead.
removeReaction(_ reaction:_,referenceId contentId:_,referenceType type:_,completion:_)
Removed
Use func removeReaction(reaction:,referenceId:,referenceType:) async throws -> Bool instead.
AmityCommunityQueryOptions
init(displayName:_,filter:_,sortBy:_,categoryId:_,includeDeleted:_)
Removed
Use initializer without displayName
AmityCommunityRepository
createCommunity(with options:_,completion:_)
Removed
Use func createCommunity(with:) async throws -> AmityCommunity instead.
updateCommunity(withId id:_,options:_,completion:_)
Removed
Use func editCommunity(id:,options:) async throws -> AmityCommunity instead.
updateCommunity(withId id:_,options:_) async throws -> AmityCommunity
Removed
Use func editCommunity(id:,options:) async throws -> AmityCommunity instead.
joinCommunity(withId communityId:_,completion:_)
Removed
Use func joinCommunity(withId:) async throws -> Bool instead.
leaveCommunity(withId communityId:_,completion:)_
Removed
Use func leaveCommunity(withId:) async throws -> Bool instead.
searchMembers(communityId:_,displayName:_,membership:_,roles:_,sortBy:_)
Removed
Use searchMembers method from AmityCommunityMembership class instead
searchMembers(communityId:_,keyword:_,membership:_,roles:_,sortBy:_)
Removed
Use searchMembers method from AmityCommunityMembership class instead.
AmityComment
dataType
Removed
Use dataTypes instead.
AmityUserRepository
searchUser(_ displayName:_,sortBy:_)
Removed
Use func searchUsers(displayName:,sortBy:) -> AmityCollection<AmityUser> instead.
getViewedUsers(postId: String)
Removed
Use getReachedUsers(viewedType: AmityViewedType,viewId: String) instead.
AmitySubChannelRepository
createSubChannel(withName:_,inChannel channelId:_,completion:_)
Removed
Use func createSubChannel(subChannelName:,channelId:) async throws -> AmitySubChannel instead
updateSubChannel(withId:_,updatedName:_,completion:_)
Removed
Use func editSubChannel(subchannelId:,updatedName:) async throws -> AmitySubChannel instead.
updateSubChannel(withId:_,updatedName:_) async throws
Removed
Use func editSubChannel(subchannelId:,updatedName:) async throws -> AmitySubChannel instead.
deleteSubChannel(withId:_,hardDelete:_,completion:_)
Removed
Use func softDeleteSubChannel(subChannelId:) async throws -> Bool or func hardDeleteSubChannel(subChannelId:) async throws -> Bool instead
AmityChannelModeration
muteMembers(_ userIds:_,mutePeriod:_,completion:_)
Removed
Use muteMembers(userIds:,mutePeriodInSeconds:) async throws -> Bool instead.
unmuteMembers(_ userIds:_,completion:_)
Removed
Use func unmuteMembers(userIds:) async throws -> Bool instead.
banMembers(_ userIds:_,completion:_)
Removed
Use func banMembers(userIds:) async throws -> Bool instead.
unbanMembers(_ userIds:_,completion:_)
Removed
Use func unbanMembers(userIds:) async throws -> Bool instead.
addRole(_ role:_,userIds:_,completion:_)
Removed
Use func addRole(role:,userIds:) async throws -> Bool instead.
addRoles(_ role:_,userIds:_) async throws -> Bool
Removed
Use func addRole(role:,userIds:) async throws -> Bool instead.
removeRole(_ role:_,userIds:_,completion:_)
Removed
Use func removeRole(role:,userIds:) async throws -> Bool instead.
removeRoles(_ role:_,userIds:_) async throws -> Bool
Removed
Use func removeRole(role:,userIds:) async throws -> Bool instead.
AmityImageMessageCreateOptions
imageURL: URL?
Removed
Use attachment property instead.
init(subChannelId:_,imageURL:_,caption:_,fullImage:_, tags:_,parentId:_)
Removed
Use initializer with attachment instead
AmityFileMessageCreateOptions
fileURL: URL?
Removed
Use attachment property instead.
init(subChannelId:_,fileURL:_,fileName:_,caption:_,tags:_,parentId:_)
Removed
Use initializer with attachment instead
AmityFileMessageCreateOptions
fileURL: URL?
Removed
Use attachment property instead.
init(subChannelId:_,fileURL:_,fileName:_,caption:_,tags:_,parentId:_)
Removed
Use initializer with attachment instead
AmityAudioMessageCreateOptions
audioFileURL: URL?
Removed
Use attachment property instead.
init(subChannelId:_,audioFileURL:_,fileName:_,tags:_,parentId:_)
Removed
Use initializer with attachment instead
AmityVideoMessageCreateOptions
videoFileURL: URL?
Removed
Use attachment property instead.
init(subChannelId:_,videoFileURL:_,fileName:_,tags:_,parentId_)
Removed
Use initializer with attachment instead
AmityMessageRepository
deleteMessage(withId:_,completion:_)
Removed
Use func softDeleteMessage(withId:) async throws -> Bool instead.
func deleteMessage(withId:_) async throws -> Bool
Removed
Use func softDeleteMessage(withId:) async throws -> Bool instead.
deleteFailedMessage(messageId:_,completion:_)
Removed
Use func softDeleteMessage(withId:) async throws -> Bool instead.
createCustomMessage(options:_,completion:_)
Removed
Use func createCustomMessage(options:) async throws -> AmityMessage instead.
createTextMessage(options:_,completion:_)
Removed
Use func createTextMessage(options:) async throws -> AmityMessage instead.
createImageMessage(options:_,completion:_)
Removed
Use func createImageMessage(options:) async throws -> AmityMessage instead.
createAudioMessage(options:_,completion:_)
Removed
Use func createAudioMessage(options:) async throws -> AmityMessage instead.
createFileMessage(options:_,completion:_)
Removed
Use func createFileMessage(options:) async throws -> AmityMessage instead.
createVideoMessage(options:_,completion:_)
Removed
Use func createVideoMessage(options:) async throws -> AmityMessage instead.
editMessage(withId:_,text:_,metadata:_,mentionees:_) async throws -> Bool
Removed
Use func editTextMessage(messageId:,text:,metadata:,mentionees:) async throws -> Bool instead.
AmityFileRepository
uploadImage(image:_,progress:_,completion:_)
Removed
Use func uploadImage(image:,progress:) async throws -> AmityImageData instead.
uploadFile(_ file:_,progress:_,completion:_)
Removed
Use func uploadFile(file:,progress:) async throws -> AmityFileData instead.
uploadFile(with:_,fileName:_,progress:_,completion:_)
Removed
Use func uploadFile(url:,fileName:,progress:) async throws -> AmityFileData instead.
uploadVideo(url:_,progress:_,completion:_)
Removed
Use func uploadVideo(with:,progress:) async throws -> AmityVideoData instead.
downloadFile(fromURL:_,completion:_)
Removed
Use func downloadFile(fromURL:) async throws -> URL instead.
AmityUserNotificationsManager
enable(modules:_,completion:_)
Removed
Use func enable(for:) async throws -> Bool instead.
disable(completion:_)
Removed
Use func disableAllNotifications() async throws -> Bool instead.
getSettingsWithCompletion(completion:_)
Removed
Use func getSettings() async throws -> AmityUserNotificationSettings instead.
Last updated
Was this helpful?