Skip to main content
Xcode forward compatibility restored in UIKit 4.19.0The Xcode 26 compatibility issue caused by RealmSwift binaries has been fully resolved in UIKit 4.19.0. The UIKit now integrates with AmitySDK v8.0.0, which has migrated its cache layer from Realm to Core Data. Realm and RealmSwift are no longer required, and Xcode forward compatibility is fully restored. We recommend upgrading to 4.19.0 or later to remove any Xcode version constraints from your project.See the iOS SDK v8 Migration Guide for installation changes, including UIKit-specific steps.
Improvements

✨ Improvements

  • Updated the AmitySDK dependency to 8.12.0.

🐞 Bug Fixes

  • Fixed duplicate rows in the event time zone picker, which listed legacy aliases (for example, Europe/Kiev next to Europe/Kyiv) as separate entries. Time zones are now labelled and sorted by their standard offset, so a zone no longer shows its daylight-saving offset next to its standard name or moves in the list when daylight saving time starts or ends.
  • Fixed users without the create-event permission being able to swipe into the hidden Hosting tab on the Upcoming and Past events pages. The Past events Hosting tab now lists only events the current user hosts, matching the Upcoming page.
  • Fixed “No results found” briefly appearing before results load in chat member search, new conversation search, community add-member and invite-member search, and @mention suggestions.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed the post detail page hanging on small screens when the post contains an image poll.
  • Fixed Mute and Unmute appearing in the group chat member actions for channel moderators, who cannot be muted.

🧩 Compatibility

Improvements

✨ Improvements

  • Updated the AmitySDK dependency to 8.11.1.
  • Users with the global DELETE_USER_FEED_POST permission can now delete other users’ posts on user feeds. Community posts continue to follow DELETE_COMMUNITY_POST in that community.

🐞 Bug Fixes

  • Fixed community moderators, including custom roles with the delete-comment permission, not consistently seeing Delete on other users’ comments in post detail and the clip comment tray.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Child Endangerment Report Reason

Added Child endangerment as a report reason for posts, comments, and chat messages. The report pages now list the reasons provided by the SDK’s AmityContentFlagReasonType, in the SDK’s order, so reasons added in a future SDK appear without a UIKit update.
  • Labels: each reason resolves through the social_label_report_reason_<key> localization key, falling back to the SDK’s default label, so your string overrides and locales apply. Use AmityStringProvider.resolveReportReasonLabel(_:) to get the same label in your own UI.
  • New API: reportMessage(messageId:reason:detail:) on AmityMessageListViewModel and AmityChatMessageListViewModel, taking an AmityContentFlagReasonType and optional detail text.

🐞 Bug Fixes

  • Fixed community moderators not seeing Edit and Delete on events created by others in their community. Event permissions are now checked in the event’s community.
  • Fixed user search when starting a direct chat, creating a group chat, or adding group members — it was case-sensitive and only matched the start of the display name. It now matches any word, ignoring case, like social search and mentions.

🚨 Compatibility Changes

  • Deprecated reportMessage(messageId:reason:) with AmityContentFlagReason. Use reportMessage(messageId:reason:detail:) with AmityContentFlagReasonType instead; for a custom reason, pass reason: .others and the text as detail.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Chat List Sort by Last Message

The chat home list can now be ordered by the most recent message instead of the most recent channel activity. Set feature_flags.chat.channel_list_sort_by in your UIKit config to "lastMessage"; the default is "lastActivity", so existing apps are unchanged.
  • Scope: the All, Direct, and Groups tabs use the same order. Search and archived lists keep sorting by last activity.
  • Row time: with lastMessage, each row shows the time of its last message, so member changes no longer move a channel or change its time.
  • Error state: if the sort is not available for your network, the chat list shows an error state instead of the list. Customize its text with amity_chat_home_error_title and amity_chat_home_error_description.

✨ Improvements

  • Updated the AmitySDK dependency to 8.10.0.
  • Chat message link previews now use the same preview rules as social posts and show the link’s domain.
  • The Discovery Widget no longer reserves an empty link-preview area for posts whose links are not set to render a preview.

🐞 Bug Fixes

  • Fixed @mention search in chat channels not matching on display name.
  • Fixed the keyboard flickering while editing a reply to a comment.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed the group chat back button doing nothing when the chat was presented modally (for example, after creating a group chat in an app without a navigation controller). Back now closes the modal chat, and still returns one screen when the chat was pushed.
  • Fixed screens opened from a chat presented this way not appearing, and the chat staying open after leaving the group.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed tapping a mention of a user whose ID contains a slash opening a website instead of the user’s profile. Mention, hashtag, and product-tag taps are now always handled inside the UIKit, including in livestream chat.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Module Availability

The UIKit now follows your network’s module settings. When your plan does not include a module, the UIKit hides that module’s pages, components, and entry points, and stops making its requests — no configuration needed. Modules that depend on another follow it: for example, when Community is unavailable, Post, Story, Events, Feed, Comment, Product, Ads, and Clip are unavailable too.
  • Gated modules: community, chat, live, poll, userRelationship, pushNotification, post, story, events, feed, comment, reaction, product, ads, and discovery. Clips follow Post.
  • Updates: availability refreshes automatically when the SDK receives new module settings.
  • New API on AmityUIKit4Manager:
    • isModuleAvailable(_:) returns whether a module is available, using the same answer the UIKit applies to its own screens.
    • moduleAvailability(_:) returns an AmityUIKitModuleAvailability with the reason: available, notGranted (your plan does not include the module), or prerequisiteUnavailable (lists the modules that would satisfy it).
    • moduleAvailability returns the availability of every gated module, for building your own settings screen.
    • moduleRequirements and isModuleEnabled(_:under:) expose the module dependency rules.

✨ Improvements

  • Updated the AmitySDK dependency to 8.9.0, which is required for module settings.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Discovery Widget

Added AmityDiscoveryWidgetComponent, an embeddable, read-only carousel of the posts selected for a topic configured in the Console. Place it on a page or screen you own, outside the social feed. See Discovery Widget.
  • Parameters: topicId (required), showHeader (default true), minVisibilityThreshold (default 3; values below 1 are treated as 1), and onCardClick.
  • Platform parameters: pageId.
  • Content: text, image, video, clip, and poll posts. Livestream and room posts are not shown.
  • Visibility: the widget renders nothing, and takes no space, when fewer supported posts than minVisibilityThreshold are available or the request fails.
  • Layout: adapts to the available width, from a compact swipeable strip to an expanded carousel.
  • Card taps: there is no default destination. Handle a tap with onCardClick, or override AmityDiscoveryWidgetComponentBehavior.goToDestination for app-wide handling. onCardClick takes precedence.
  • Customization: component IDs discovery_widget_component and discovery_widget_post_card_component.
  • Host container: give the widget wrap-content or a minimum height, and do not place it inside a horizontally scrolling parent.

Pinned Messages in Livestream Chat

Hosts, co-hosts, moderators, and anyone with the PIN_MESSAGE permission can pin a message from the livestream chat message ⋮ menu. The pinned message shows as a banner above the chat for every viewer, and a long message expands on tap. See Pinned Messages.
  • Unpin: from the banner or from the message menu.
  • Permission changes: the pin controls appear or disappear as soon as a user’s permission changes mid-stream.
  • Customization: */livestream_chat_feed/pinned_message_banner. The pin and unpin menu items are not customizable on iOS.

✨ Improvements

  • Moderation controls are now gated on the permission each action requires instead of on the user’s role name, so a custom role with the right permission gets the same controls as a built-in moderator. This covers message delete, mute, group settings, member actions, banned members, mention-all, community settings and profile actions, pending-post review, post-menu actions, story management, and event edit, and the gates follow permission changes in real time.

🐞 Bug Fixes

  • Fixed video download and playback in chat using swapped URLs — downloading a video previously saved the streamed playback asset, and playback used the download asset.
  • Fixed the post, poll, and livestream options in an event’s create-post menu ignoring the excludes configuration.
  • Fixed toast messages appearing in the wrong position on livestream, post detail, and story surfaces; toasts now sit above the bottom bar.
  • Fixed Picture-in-Picture starting automatically while a livestream chat sheet (message actions, moderation, share, or menu) was open.
  • Fixed the post-creation button state after removing a failed media attachment.
  • Fixed the media carousel not remembering its current index after a manual swipe.
  • Fixed the product tag icon missing in the post composer’s media viewer.
  • Fixed empty-state rendering in the community add-member and invite-member pages.
  • Fixed the group name field not wrapping to a new line, and its placeholder rendering in the value text color instead of the placeholder color.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Picture-in-Picture

Added Picture-in-Picture for live and recorded livestream playback, so the stream keeps playing in a floating window when the viewer backgrounds the app or navigates elsewhere.Posts with two or more images or videos now render as a swipeable media carousel, in both the feed and the composer preview.

Livestream Viewer Count

The livestream viewer count is now shown based on your network configuration.

Customizable Chat Taps

Chat mention taps and avatar taps are now reachable through behavior overrides, so you can route them to your own screens.

✨ Improvements

  • Adopted the SDK’s new searchBy capability for more accurate user search — results now match display names, so user-ID-only matches no longer appear. The same applies to @mention search in posts and comments.

🐞 Bug Fixes

  • Fixed the media carousel index not resetting after a feed refresh.
  • Fixed channel avatar parsing on chat pages.
  • Prevented Picture-in-Picture from activating on the report-reason screen and while a bottom sheet is open on a livestream.
  • Chat links now follow the existing link-opening behavior.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Event Posts

Added event posts — share an event to the community feed, where it renders as an event post card that opens the event on tap.

🐞 Bug Fixes

  • Fixed the notification unread red-dot issue.
  • Fixed the Explore Community button.
  • Excluded the product tag on event posts.
  • Fixed the avatar placeholder color and assorted color issues.
  • Fixed staging regressions.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed the Explore Community button to open the Communities / Explore tab.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed news-feed pull-to-refresh: no more empty-page/skeleton flash, the featured post no longer disappears mid-refresh, and live updates resume after a refresh error.
  • Fixed tapping a user avatar opening a blank screen.
  • Sorted the community list by display name.
  • Fixed permissions on the About tab.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed avatars and images hosted on external (non-Amity) CDNs failing to load — the image loader now retries once without the Authorization header when the host rejects the bearer token.
  • Fixed the selected tab color ignoring your configured primary color; tab bars now use the theme’s primary color instead of the highlight color.
  • Fixed the notification tray item color and the disabled-button color in the post and comment composers.
  • Aligned assorted surfaces with the web UIKit for visual consistency.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed the notification tray showing the wrong user’s avatar.
  • Resolved custom user avatars (avatarCustomUrl) on the remaining chat pages.
  • Removed the redundant overflow menu button on the group chat page.

🧩 Compatibility

Improvements

✨ Improvements

  • Prevented notification tray unread-indicator sync timing racing condition against actual TTL.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Chat Design Refresh

Migrated the Chat UIKit to the new design system.

Event Created Notification

Added a “created event” item to the notification tray.

🐞 Bug Fixes

  • Fixed large image preview decoding.
  • Fixed avatar rendering on profiles.
  • Fixed tapping a comment on a clip not navigating to the post detail.
  • Fixed several chat regressions.
  • Increased the touch area of the chat back button and added a navigation handler.
  • Fixed push notification registration.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Live Player Controls

Added tap-to-reveal player controls, a live pause state.

🐞 Bug Fixes

  • Fixed the chat back button not working when there was no navigation stack, and added an optional back button to the chat list.
  • Fixed a discussion livestream being published as an event’s recorded stream.
  • Fixed the livestream not keeping its current state when switching between background and foreground.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

For You Feed

Added the personalized For You feed, gated by the network’s For You feed configuration.Added shareable event links to the event detail experience.

🚨 Compatibility Changes

  • Removed the deprecated v3 modules.

🐞 Bug Fixes

  • Fixed clickable links not working on posts.
  • Fixed read-only livestreams for guests and non-members.
  • Fixed the toast type and icon.
  • Fixed a moderator being unable to delete an event.
  • Fixed co-host name display and layout.

🧩 Compatibility

Improvements

🚀 New Features

  • Support avatar rendering from custom avatar URL(avatarCustomUrl)

🐞 Bug Fixes

  • Fixed the poll “see results / see more options” label color and standardized the vote button styling on the poll post view.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed permission check before showing the add button on the community membership page.
  • Fixed members list not refreshing immediately after a member is added or removed.
  • Fixed follow button text on the user profile page.
  • Fixed clip action behavior callback not being triggered when tapping the clip feed.
  • Added element IDs for events and clips in the newsfeed, and for creation buttons on the community and user profile pages.

🚨 Compatibility Changes

  • Deprecated AmityLivestreamBehavior.
  • Deprecated goToCreateCommunityPage(context:) on AmitySocialHomeTopNavigationComponentBehavior.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed permission check before showing the add button on the community membership page.
  • Fixed members list not refreshing immediately after a member is added or removed.
  • Fixed dark theme colors in the notification tray.
  • Fixed follow button text on the user profile page.
  • Fixed clip action behavior not being triggered when tapping the clip feed.
  • Added element IDs for events and clips in the newsfeed, and for creation buttons on the community and user profile pages.

🚨 Compatibility Changes

  • Deprecated AmityLivestreamBehavior.
  • Deprecated goToCreateCommunityPage(context:) on AmitySocialHomeTopNavigationComponentBehavior.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Visitor Usage Limit Page

Added AmityVisitorUsageLimitPage , a full-screen error shown when a visitor exceeds their daily read quota. Two new AmityGlobalBehavior overrides let you customise the experience:
  • handleVisitorUsageLimitReached() — replace the default full-page error with your own UI
  • handleVisitorUsageLimitSignIn() — replace the default sign-in toast with navigation to your own sign-in screen

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed analytic data sync issue in the underlying SDK.

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed stale session data issue after secure logout in the underlying SDK.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Localization in Social Features

All UI strings are now externalised into string resource files, enabling custom translations and runtime language switching. Developers can add any language by providing translated resource files without modifying application code. See the Localization guide for setup instructions and platform-specific details.

🐞 Bug Fixes

  • Fixed post mentioned user issue.

🧩 Compatibility

New Releases

🚀 New Features

Integrated with AmitySDK v8.1.0

UIKit now integrates with AmitySDK v8.1.0.

🧩 Compatibility

New Releases

🚀 New Features

Migrated to AmitySDK v8.0.0 — Realm Removed

UIKit now integrates with AmitySDK v8.0.0. The Realm and RealmSwift dependency has been removed — Realm.xcframework and RealmSwift.xcframework are no longer installed through the SharedFrameworks Package.swift file. No public UIKit APIs have changed; only the installation steps differ.See the iOS SDK v8 Migration Guide for updated installation instructions.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Bluetooth Remote & Hardware Key Support for Livestream Start

Pressing a paired Bluetooth remote shutter or the device’s hardware volume key now starts a livestream, consistent with how these controls trigger the camera shutter in the native camera app.

🐞 Bug Fixes

  • Fixed a crash in AmityNewsfeedComponent.

Specific Xcode support

26.4.1 => 4.18.3-xcode26.4.1 26.4 => 4.18.3-xcode26.4 26.3 => 4.18.3-xcode26.3

🧩 Compatibility

New Releases

🚀 New Features

Product Tag Click Handlers in Global Behavior

Add onPostProductTagClick(context:) and onLivestreamProductTagClick(context:) callbacks in AmityGlobalBehavior, enabling custom handling of product tag interactions in posts and livestreams.

External Bundle Icon Support in Config File

Config file now supports loading icons from an external bundle, allowing greater flexibility for custom icon assets.

Specific Xcode support

26.4 => 4.18.126.3 => 4.18.1-xcode26.3

🧩 Compatibility

New Releases

🚀 New Features

Multi-Level Reply Rendering

Add multi-level reply rendering with optimistic reply support.

Expand Replies with Load More

Add expand replies with load more support.Add URL/hyperlink text support in comments.

Portrait Livestream Thumbnail Placeholder

Add portrait livestream thumbnail placeholder.

Specific Xcode support

26.4 => 4.18.026.3 => 4.18.0-xcode26.326.2 => 4.18.0-xcode26.2

🐞 Bug Fixes

  • Fixed various UI bugs.

🧩 Compatibility

New Releases

🚀 New Features

Product Tagging in Posts

Support product tagging in post composer — tag products via @ text mention or per-media tag button with up to 20 products per post. Tagged products display as a list below post content.

Livestream Product Tagging

Support product management in livestreams — hosts and co-hosts can tag, pin, and remove products during broadcasts. Viewers browse tagged products via a scrollable overlay with real-time pinned product display.

Specific Xcode support

26.3 => 4.17.0-beta0516.x => 4.17.0-beta05-xcode16.426.2 => 4.17.0-beta05-xcode26.2

🧩 Compatibility

Improvements

🐞 Bug Fixes

  • Fixed poll options failed to expand.

Specific Xcode support

26.3 => 4.16.6

🧩 Compatibility

New Releases, Improvements

🚀 New Features

Support External Config File

  • Introduced AmityUIKit4Manager.setConfigFile(filePath: String) to be able to load config file from application level.

🐞 Bug Fixes

  • Fixed incorrect camera exporsure on Story creation.

Specific Xcode support

26.2 => 4.17.0-beta0316.x => 4.17.0-beta03-xcode16.426.1 => 4.17.0-beta03-xcode26.126.3 => 4.17.0-beta03-xcode26.4

🧩 Compatibility

New Releases

🚀 New Features

Livestream analytics

Viewers watching sessions are captured automatically on UIKit

Specific Xcode support

26.2 => 4.17.0-beta0216.x => 4.17.0-beta02-xcode16.426.1 => 4.17.0-beta02-xcode26.1

🧩 Compatibility

New Releases

🚀 New Features

Event Scheduling

Introduce Event scheduling with functionalities such as RSVP, reminders, discussion, and livestreaming

Co-Streaming

Introduce an ability to invite a viewer to co-stream a livestream session for livestram in communities

Specific Xcode support

26.1 => 4.17.0-beta0116.x => 4.17.0-beta01-xcode16.426.2 => 4.17.0-beta01-xcode26.2

🧩 Compatibility

New ReleasesImprovements

🚨 Compatibility Changes

Xcode 26.1 support

  • The binary is now built with Xcode 26.1, ensuring compatibility with Xcode 26.1 and later. The minimum toolchain version is now Xcode 26.1. Earlier Xcode versions are no longer supported.

🧩 Compatibility

New ReleasesImprovements

🚨 Compatibility Changes

Xcode 26 support

  • The binary is now built with Xcode 26, ensuring compatibility with Xcode 26 and later. The minimum toolchain version is now Xcode 26. Earlier Xcode versions are no longer supported.

🧩 Compatibility

New ReleasesImprovements

🚀 New Features

Post structure compatibility

  • Ensure UIKit only query for posts that can be rendered.

🧩 Compatibility

New Releases

🚀 New Features

Public Access

  • Support visitor access.

🧩 Compatibility

New Releases

🚀 New Features

Image Poll Post

  • Poll post now support having images as options.
  • Add an ability update poll answer.

Post title

  • Post can now be created with an optinal title.

Hashtag

  • Add hashtag support on Post.
  • Enable Post search by hashtag.

Reaction Options

  • Add Multiple reaction options support.

🧩 Compatibility

New Releases

🚀 New Features

Livestream chat & reactions

  • Introduce an ability to chat in a community’s livestream.
  • Introduce an ability to send reaction in a community’s livestream.

Clip post

  • Introduce an ability create and view a clip post (vertically scrolling video).

🧩 Compatibility