GuidesAPI ReferenceRelease Notes
HomeLog InHome
Guides

iOS SDK release notes (historical)

Historical Experiences SDK release notes for iOS, 2026 onward. For current releases, use the latest published release notes. For 2025 and earlier, see iOS SDK release notes (historical, 2025 and earlier).

1.20.3 - iOS

Date: 2026-08-31

Fixed

SDK initialization stability

Fixed a race condition during SDK initialization that could crash the host app.

1.20.1 - iOS

Date: 2026-07-23

Added

Keep empty tabs visible

isTabVisibleWhenEmpty on BlazePlayerTabsStyle controls whether a tab with no content, or a failed load, stays visible. Defaults to true. See isTabVisibleWhenEmpty.

A tab that stays visible presents the player's empty or error state. When set to false, a tab is removed after its content is prepared. The first tab is always kept, whether or not it has content.

🚧

This changes the default for every app, not only apps that requested it.

Empty tabs were previously hidden automatically. They're now visible again by default. If your app relies on the automatic hiding, set isTabVisibleWhenEmpty = false to keep that behavior.

1.20.0 - iOS

Date: 2026-07-20

Breaking changes

For you cold start labels

Renamed the Recommendations For you parameter from promotedLabels to coldStartLabels. Update any For you data source that still passes promotedLabels. See Implicit personalization.

Widget remote identifier

Renamed widgetRemoteId to widgetRemoteIdentifier on widget init and related APIs. Update call sites to the new name. CMS-configured widgets are supported starting with this version: set widgetRemoteIdentifier so content creators can configure widgets in Experiences CMS. See CMS-configured widgets and Widget initialization.

Added

Item click thumbnail

BlazeWidgetItemClickParams now includes contentThumbnailUrl, the URL of the clicked item's main thumbnail (Stories, Moments, and Videos widgets). See BlazeWidgetItemClickHandlerState.

Closed captions style

BlazeCaptionsStyle for customizing closed captions in the player.

Moments likes count threshold

shouldPreserveLikesCountBelowThreshold on BlazeMomentsPlayerButtonsStyle.

CTA border customization

borderColor and borderWidth on Moments, Stories, and Videos CTA styles. See BlazeMomentsPlayerCtaStyle, BlazeStoryPlayerCtaStyle, and BlazeVideosPlayerCtaStyle.

Stories pre-roll ads

ads.enablePreroll on BlazeStoriesPlaybackConfiguration. When enabled, the fixed-position ad on the first page plays as a pre-roll instead of being skipped. Default is false.

Moments tabs chrome

isTabTitleVisibleWhenSingleTab and activeTabIndicator on BlazePlayerTabsStyle. See Moments widget tabs.

Share extra info

extraInfo on BlazeShareParams. See BlazePlayerSourceDelegate.

Compose Data Source

composite to enable multiple data sources in a single call. See BlazeDataSourceType.composite: iOS

Videos player overlay auto-hide time

overlayVisibilityThreshold on BlazeVideosPlayerStyle sets how long (in seconds) the player controls overlay stays visible before it auto-hides. Non-positive values (zero or negative) fall back to the default. Presets keep the current default of 3.0 seconds.

Live streaming

Streaming video (CMS Streams / live video) is supported starting with this version. The Videos player and widgets now support live video streams alongside on-demand videos. A live stream is a video that carries stream metadata, so it plays through the standard Videos player and widgets: there is no separate live player. See Video content type delivery.

  • BlazeVideosFilterParams (contentTypes, streamStates) surfaces streams via BlazeVideosWidgetView.videosFilterParams and Blaze.shared.playVideos/prepareVideos. By default only on-demand videos are returned, so include .stream to show live content.
  • BlazeVideoContentType (.video / .stream) and BlazeLiveStreamStatus (.live / .upcoming / .ended) identify the content type and the stream lifecycle.
  • Order streams with BlazeOrderType (.startTimeDesc / .startTimeAsc) and BlazeAdvancedOrderType (.liveFirst).
  • Customize the player's live UI with statusIndicator (BlazeVideosPlayerStatusIndicatorStyle), backToLiveButton (BlazeVideosPlayerBackToLiveButtonStyle), and waitingRoomMessage on BlazeVideosPlayerStyle; style the live/upcoming/ended chip on widget items with BlazeWidgetItemStatusIndicatorStyle.

See Live streaming.

Removed

Removed BlazeDataSourceType.remoteConfig. CMS-configured widgets are supported starting with this version through widgetRemoteIdentifier at widget initialization. See CMS-configured widgets.

Changed

Videos multi-aspect ratio default

Default of BlazeVideosPlaybackConfiguration.multiAspectRatio changed from false to true.

1.19.0 - iOS

Date: 2026-05-17

Added

  • Added extraInfo: [String: String] to BlazeWidgetItemClickParams, exposing the content item's key-value metadata to the widget click handler. See BlazeWidgetItemClickHandlerState.
  • Added shimmer color customization for widgets via the new BlazeWidgetShimmeringStyle type, exposed on BlazeWidgetLayout.shimmering. See BlazeWidgetShimmeringStyle.
  • Added configurable buffering spinner delay to all player types:
  • Added Widget to Tabs support for Moments widgets. A new init(layout:tabsContainer:) initializer on BlazeMomentsWidgetRowView / BlazeMomentsWidgetGridView (UIKit) and a new BlazeSwiftUIMomentsWidgetViewModel(widgetConfiguration:tabsContainer:) initializer (SwiftUI) launch a fullscreen tabs player on item tap. See Moments Widget to Tabs.
  • Added SDK-wide sound state control via the new BlazePlayerSoundState type and Blaze.shared.setPlayerSoundState() method, allowing apps to mute or unmute all story, moment, and video playback globally.

Updated

  • Updated the GoogleMobileAds dependency range to support version 13.x.

Fixed

  • Fixed a possible crash caused by ICU memory allocation during geo validation on background launch.
  • Fixed Moments Tabs isVisible property not correctly hiding or showing tabs as expected.
  • Fixed the 2x speed indicator overlapping the Moments Tabs header.
  • Fixed the 2x speed indicator not appearing on iPad during 2x playback.
  • Fixed Moments Tabs not playing content on RTL devices.

1.18.1 - iOS

Date: 2026-04-20

Added

Moments tabs: programmatic content reload

You can now programmatically refresh the content of your Moments tabs component without requiring users to navigate away and back.

New public methods describedhere

Story player: title image

A contextual image can now be displayed alongside the story title in the player header. See Storyplayertitleimagestyle

New public types: BlazeStoryPlayerTitleImageStaticSource, BlazeStoryPlayerTitleImageSource, BlazeStoryPlayerTitleImageStyle.

1.17.2 - iOS

Date: 2026-03-26

Added

  • SDK initialization is now deferred until the app is in the foreground, preventing unintended initialization during background launches.

1.17.1 - iOS

Date: 2026-03-10

Fixed

  • PiP abruptly closed while scrolling in lazy lists.

1.17.0 - iOS

Date: 2026-03-08

Added

  • Added AirPlay casting functionality to the Videos player. Requires NSLocalNetworkUsageDescription in Info.plist and the Audio, AirPlay, and Picture in Picture background mode enabled. See BlazeCastingManager.
  • Added auto-advance functionality to the Moments player. See BlazeMomentsPlaybackConfiguration.
  • Added Picture-in-Picture (PiP) support to the Videos player. Powered by Apple's native PiP framework. See BlazePipManager.
  • Added onShareClicked method to allow apps to fully override the share link creation. See onShareClicked.
  • Added a new Search functionality (free text content search UI):
  • Added Seek buttons to Moments and Videos players. See Moments Seek and Videos Seek.
  • Added X2 speed mode for Moments and Videos players.
  • Added double-tap gesture to Videos player.

1.16.3 - iOS

Date: 2026-01-18

Fixed

  • Fixed synchronization between moments players' likes state when multiple players live with the same content at the same time.
  • Performance enhancements.

Did this page help you?