Releases: airbnb/lottie-ios
4.5.2
- Adds support for 
.lottiev2 file format by @eharrison in #2564 - Support customizing 
contentsScaleof text layer by @calda in #2559 - Fix issue where animation with justified text justification would fail to parse by @calda in #2553
 - Adds static framework generation on CI by @Loupehope in #2561
 
Full Changelog: 4.5.1...4.5.2
4.5.1
What's Changed
- Add additional dynamic library product to Package.swift by @JensK611 in #2507
 - Fix frame conversion in 
LottieAnimationLayer.pause(at: .marker(...))by @calda in #2469 - Add possibility to remove ValueProvider by @batanus in #2474
 - Xcode 16: fix warnings for types that inherit 
@unchecked Sendableby @jszumski in #2477 - Trim shape default type value by @alexallah in #2478
 - do not crash if value is false by @DarkSatyr in #2482
 
Full Changelog: 4.5.0...4.5.1
4.5.0
New Features
- Added drop shadow support to main thread rendering engine (#2423)
 - Added support for opacity text animators (#2436)
 - Added 
LottieViewhelper for configuring individualLottieAnimationViewproperties (#2415) 
Bug Fixes
- Fixed issue where bezier paths could be closed incorrectly (#2418)
 - Fixed bug where font providers were ignored in precomposition layers in the main thread rendering engine (#2439)
 - Fixed issue where lottie-spm package could cause package operations to unexpectedly fail on Linux (airbnb/lottie-spm#27).
 
Version Compatibility
Lottie now requires Xcode 15 / Swift 5.9 or later (#2400). Our version support policy is that Lottie supports Swift / Xcode versions back to the minimum version that is permitted by Apple for submissions to the App Store. As of April 2024, this is Xcode 15 / Swift 5.9: https://developer.apple.com/news/?id=fxu2qp7b.
Full Changelog: 4.4.3...4.5.0
4.4.3
Bug fixes in 4.4.3
- Fix issue where animation size could be incorrect after loading async animation (#2379)
 - Update NSPrivacyAccessedAPITypeReasons in privacy manifest (#2380)
 - Include animation duration when computing cost/complexity of Core Animation time remapping (#2381)
 
New features in 4.4.0
- Add privacy manifest (#2252)
 - Codesign Lottie.xcframework (#2259)
 - Add time remapping support to Core Animation rendering engine (#2286)
 - Add official visionOS support to lottie-ios repo (#2287)
 - lottie-spm now supports visionOS (airbnb/lottie-spm#12)
 - Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (#2260)
 
Full Changelog: 4.4.2...4.4.3
4.4.2
Changes in 4.4.2
- Update minimum deployment target to iOS 13.0 / macOS 10.15 (#2322)
 - Add privacy manifest to lottie-spm repo (airbnb/lottie-spm#23)
 - Add visionOS support to Cocoapods podspec (#2348)
 - Fix incorrect usage of 
State(initialValue:)inLottieView(#2357) - Use correct version number when building XCFramework bundle (#2341)
 
New features in 4.4.0
- Add privacy manifest (#2252)
 - Codesign Lottie.xcframework (#2259)
 - Add time remapping support to Core Animation rendering engine (#2286)
 - Add official visionOS support to lottie-ios repo (#2287)
 - lottie-spm now supports visionOS (airbnb/lottie-spm#12)
 - Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (#2260)
 
Full Changelog: 4.4.1...4.4.2
4.4.1
Bug fixes in 4.4.1
- Replace os check with canImport so classes are available on visionOS (#2294)
 - Omit privacy manifest from source files in podspec (#2307)
 - Fix crash in Main Thread rendering engine path interpolation implementation (#2305)
 - Fix warning from invalid character in Cocoapods resource bundle identifier (#2317)
 - Fix infinite loop when setting 
LottieAnimationView.viewportFrame(#2316) 
New features in 4.4.0
- Add privacy manifest (#2252)
 - Codesign Lottie.xcframework (#2259)
 - Add time remapping support to Core Animation rendering engine (#2286)
 - Add official visionOS support to lottie-ios repo (#2287)
 - lottie-spm now supports visionOS (airbnb/lottie-spm#12)
 - Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (#2260)
 
Full Changelog: 4.4.0...4.4.1
4.4.0
New features
- Add privacy manifest (#2252)
 - Codesign Lottie.xcframework (#2259)
 - Add time remapping support to Core Animation rendering engine (#2286)
 - Add official visionOS support to lottie-ios repo (#2287)
 - lottie-spm now supports visionOS (airbnb/lottie-spm#12)
 - Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (#2260)
 
Bug fixes
- Update LottieView to display placeholder using 
overlayinstead ofZStack(#2289) - Fix issue where Core Animation rendering engine couldn't display last frame of animation when paused (#2254)
 - Do not create 
DotLottieImageProviderinstance if there's no image files (#2271) - Mark DotLottieCache as Sendable (#2245)
 - Fix issue where AnimationKeypath in SolidLayer could be incorrect (#2278)
 - Fix issue where Repeater could be displayed incorrectly (#2276)
 - Include dSYMs in xcframework build (#2284)
 - Fix parsing issue, add support for DotLottieConfiguration in SwiftUI LottieView (#2277)
 - Fix issue where DotLottieImageProvider didn't handle base64 images (#2283)
 - Fix issue where manually interpolated keyframes could animate incorrectly (#2285)
 
Full Changelog: 4.3.4...4.4.0
4.3.4
What's Changed
- Fix parsing regression in 4.3.0 from addition of parsing layer effects by @calda in #2208
 - Remove old animation layer when creating a new animation layer by @junjielu in #2214
 - Add configuration setting to remove animated bounds changes by @thedrick in #2218
 - Change  pod dependencies 
SwiftUIandCombinetoweakto ensure compatibility with iOS 12 by @florianrhein in #2219 - Fix issue where Repeater would be ignored if not at top level by @calda in #2221
 - Replace 
UIScreen.mainto get display scale on iOS 13.0 and later (#2215) by @hyun99999 in #2216 - Dispatch dot lottie file loading onto a single serial queue by @erichoracek in #2229
 - Clean up unused property in InvertedMatteLayer by @hanton in #2241
 - Fix issue where LottieView animation would restart from beginning after backgrounding app by @calda in #2237
 
Full Changelog: 4.3.3...4.3.4
4.3.3
Lottie 4.3.0 adds many new features, including:
- Official support for SwiftUI!
 - A public Core Animation 
CALayersubclass - Support for reduced motion
 - Support for drop shadow layer effects
 - Support for visionOS
 
You can learn more about Lottie 4.3.0 in this announcement: Lottie 4.3.0 now available, with official support for SwiftUI #2189
Lottie 4.3.3 fixes a regression introduced by Lottie 4.3.0 where the contents of a LottieAnimationView could crossfade / animate unexpectedly when updating the current LottieAnimation or rendering engine: #2200
New Features in Lottie 4.3.0
- Add SwiftUI 
LottieView, which wraps UIKitLottieAnimationView - Add SwiftUI 
LottieSwitch, which wraps UIKitAnimatedSwitch(#2138) - Add SwiftUI 
LottieButton, which wrapsAnimatedButton(#2139) AnimatedSwitchandAnimatedButtonnow support macOS (#2138, #2139)- Add 
LottieAnimationLayer, a Core AnimationCALayersubclass for playing Lottie animations (#2073) - Add support for rendering drop shadow layer effects (#2142)
 - Add API for playing multiple markers sequentially (#2084)
 - Play "reduced motion" marker if 
UIAccessibility.isReduceMotionEnabledis true (#2110) - Update text provider API to use full 
AnimationKeypathvalues (#2183) - Add support for visionOS (#2152)
 - Drop support for Swift 5.5 (#2152)
 - Add contents gravity configuration to 
AnimationImageProvider(#2177) - Add support for customizing stroke width values using 
FloatValueProvider(#2179) - Adopt 
Sendableto support using Lottie with strict concurrency enabled (#2126) - Add 
LottiePlaybackModeto support declarative playback configuration (#2128) - Add option make main thread rendering engine force display update on every frame (#2168)
 - Add a option to prevent caching images from 
AnimationImageProvider(#2171) - Add support for customizing gradient values using 
GradientValueProvider(#2182) - Added additional support for multiple animations in 
DotLottieFile(#2074) - Add helper method to initialize 
DotLottieFilewith data (#2090) 
Bug fixes
- Remove 
.../ZipFoundation/README.mdfrom targets and*.md*files from podspec (#2057)* - Fix issue where layers with negative X scale values could be pixelated (#2067)
 - Fix warnings when building with Swift 5.9 (#2072)
 - Restructure 
ValueProviderStoreto not accumulate multiple values for the same key (#2082) - Disable bitcode when building XCFramework (#2121)
 - Fix unhandled file warning when building with SPM (https://github.com/airbnb/lottie-ios/pull/213)
 - Fix support for customizing color of 
SolidLayerusingColorValueProvider(#2154) - Fix issue where shape items could be unexpectedly ignored (#2156)
 - Fix issue where skew keyframes would unexpectedly not animate (#2157)
 - Fix issue where value providers could be ignored when falling back to main thread rendering engine (#2164)
 
Thanks to everyone who contributed to this release!
4.3.2
Lottie 4.3.0 adds many new features, including:
- Official support for SwiftUI!
 - A public Core Animation 
CALayersubclass - Support for reduced motion
 - Support for drop shadow layer effects
 - Support for visionOS
 
You can learn more about Lottie 4.3.0 in this announcement: Lottie 4.3.0 now available, with official support for SwiftUI #2189
Lottie 4.3.2
Lottie 4.3.2 redesigns the LottiePlaybackMode playback APIs that were introduced in Lottie 4.3.0.
Before
// Loop from 0.5 to 1.0
LottieView(animation: myAnimation)
  .play(.fromProgress(0.5, toProgress: 1.0, loopMode: .loop))
// Pause at the halfway point of the animation
LottieView(animation: myAnimation)
  .play(.progress(0.5))After
// Loop from 0.5 to 1.0
LottieView(animation: myAnimation)
  .playing(.fromProgress(0.5, toProgress: 1.0, loopMode: .loop))
// Pause at the halfway point of the animation
LottieView(animation: myAnimation)
  .paused(at: .progress(0.5))New Features in Lottie 4.3.0
- Add SwiftUI 
LottieView, which wraps UIKitLottieAnimationView - Add SwiftUI 
LottieSwitch, which wraps UIKitAnimatedSwitch(#2138) - Add SwiftUI 
LottieButton, which wrapsAnimatedButton(#2139) AnimatedSwitchandAnimatedButtonnow support macOS (#2138, #2139)- Add 
LottieAnimationLayer, a Core AnimationCALayersubclass for playing Lottie animations (#2073) - Add support for rendering drop shadow layer effects (#2142)
 - Add API for playing multiple markers sequentially (#2084)
 - Play "reduced motion" marker if 
UIAccessibility.isReduceMotionEnabledis true (#2110) - Update text provider API to use full 
AnimationKeypathvalues (#2183) - Add support for visionOS (#2152)
 - Drop support for Swift 5.5 (#2152)
 - Add contents gravity configuration to 
AnimationImageProvider(#2177) - Add support for customizing stroke width values using 
FloatValueProvider(#2179) - Adopt 
Sendableto support using Lottie with strict concurrency enabled (#2126) - Add 
LottiePlaybackModeto support declarative playback configuration (#2128) - Add option make main thread rendering engine force display update on every frame (#2168)
 - Add a option to prevent caching images from 
AnimationImageProvider(#2171) - Add support for customizing gradient values using 
GradientValueProvider(#2182) - Added additional support for multiple animations in 
DotLottieFile(#2074) - Add helper method to initialize 
DotLottieFilewith data (#2090) 
Bug fixes
- Remove 
.../ZipFoundation/README.mdfrom targets and*.md*files from podspec (#2057)* - Fix issue where layers with negative X scale values could be pixelated (#2067)
 - Fix warnings when building with Swift 5.9 (#2072)
 - Restructure 
ValueProviderStoreto not accumulate multiple values for the same key (#2082) - Disable bitcode when building XCFramework (#2121)
 - Fix unhandled file warning when building with SPM (https://github.com/airbnb/lottie-ios/pull/213)
 - Fix support for customizing color of 
SolidLayerusingColorValueProvider(#2154) - Fix issue where shape items could be unexpectedly ignored (#2156)
 - Fix issue where skew keyframes would unexpectedly not animate (#2157)
 - Fix issue where value providers could be ignored when falling back to main thread rendering engine (#2164)
 
Thanks to everyone who contributed to this release!