Skip to content

Releases: onevcat/Kingfisher

8.8.0 - Background Relief

04 Mar 14:46
8.8.0

Choose a tag to compare

Add

  • Add AnimatedImageView.purgeFrames(keepCurrentFrame:) and opt-in purgeFramesOnBackground to reduce animated frame memory while app is backgrounded. #2482 #2445 @onevcat @Ceylo
  • Add KFAnimatedImage.purgeFramesOnBackground(_:) to expose background frame purging in SwiftUI. #2484 @WZBbiao

Fix

  • Fix missing completion callback when original cache reports cached but returns no image. #2481 #2472 @onevcat @hotngui
  • Fix AnimatedImageView deinit compatibility for older Swift 6 toolchains without isolated deinit support. #2485 @onevcat
  • Apply retryStrategy in ImagePrefetcher load path so retry options also work during prefetching. #2487 @TastyHeadphones
  • Fix non-Sendable RetryDecision capture warning in ImagePrefetcher retry flow under Swift 6 concurrency checks. #2488 @onevcat

8.7.0 - Async Expedition

18 Feb 00:24
8.7.0

Choose a tag to compare

Add

  • Add opt-in async cache type check API imageCachedTypeAsync to avoid synchronous disk access on the calling thread. #2480 #2323 @onevcat @jotai-coder
  • Add optional cacheKey parameter for PhotosPickerItemImageDataProvider and PHPickerResultImageDataProvider for better cache control. #2479 @onevcat
  • Support using an OperationQueue or equivalent interface in CallbackQueue for custom processing queue control. #2474 @onevcat

Fix

  • {"Fix"=>"stabilize cacheKey for PhotosPicker/PHPicker data providers. Now uses stored property with picker-provided identifier or falls back to a per-instance UUID. #2478 @onevcat"}
  • Fix a race condition crash in ImagePrefetcher.handleComplete when iterating sources during concurrent mutation. #2465 @erichoracek
  • Fix GIF disk cache losing animation when original data is missing. Now DefaultCacheSerializer prefers embedded GIF bytes over re-encoding to PNG. #2454 #2453 @onevcat @rztime
  • Fix a crash when accessing KingfisherWrapper<UIApplication>.shared in unit tests. #2450 @maxchuquimia
  • Call async modifier start callback before resume to ensure proper callback timing. #2462 @onevcat
  • Remove ActorBox and harden background task cleanup to fix Sendable/main actor issues. #2459 @onevcat
  • Mark ImagePrefetcher callback types as @Sendable to fix Swift 6 concurrency warnings.
  • Deprecate SwiftUI .onFailureImage modifier in favor of .onFailureView. #2451 #2449 @onevcat @sagarrai21802

8.6.2 - High Fidelity

17 Nov 07:00
8.6.2

Choose a tag to compare

Fix

8.6.1 - Atomic

27 Oct 13:32
8.6.1

Choose a tag to compare

Fix

  • Fix non-atomic task creation for concurrent same-URL requests to prevent callback loss. #2444 @darkbrewx

8.6.0 - Retryfisher

05 Oct 13:28
8.6.0

Choose a tag to compare

Add

  • Add network retry strategy with configurable retry logic for failed downloads. #2439 @komkovla
  • Add network metrics collection for download tasks with download speed measurement and timestamp handling. #2416 @darkbrewx

Fix

  • Fix crash on setting indicator on macOS 26 by changing default indicator style. #2442 @onevcat
  • Fix retain cycle in ImageDownloader when transferring network metrics. #2419 @darkbrewx
  • Upgrade to the latest Xcode recommended settings for improved build configuration. #2417 @onevcat
  • Update CI script to make it work with Xcode 26. #2442 @onevcat

8.5.0 - Transition Dancer

14 Jul 16:26
8.5.0

Choose a tag to compare

Add

  • Add SwiftUI native transition support for KFImage with loadTransition(_:animation:) method. #2410 @darkbrewx @onevcat

Fix

  • Fix documentation for loadDiskFileSynchronously in SwiftUI components to clarify default synchronous behavior. #2411 @pinkjuice66 @onevcat
  • Fix BorderImageProcessor.identifier implementation. #2409 @teameh

8.4.0 - Failure Fisher

03 Jul 13:18
8.4.0

Choose a tag to compare

Add

Fix

  • Fix Sendable warnings in Xcode 26 with stricter concurrency checking. #2400 @onevcat
  • Fix test timing issue in ImageCacheTests for CI stability. #2401 @onevcat
  • Optimize CI workflow to avoid duplicate runs on pull requests. #2402 @onevcat

8.3.3 - Swift Harmony

22 Jun 01:56
8.3.3

Choose a tag to compare

Add

  • Update Carthage support for both watchOS and iOS platforms for earlier versions of v8 temporarily #2399 @wolfcon

Fix

8.3.2 - Tariffisher

10 Apr 14:06
8.3.2

Choose a tag to compare

Fix

  • Memory cache cleanning timer will now be correctly set when the cache configuration is set. #2376 @erincolkan
  • Add BUILD_LIBRARY_FOR_DISTRIBUTION flag to podspec file. Now CocoaPods build can produce stabible module. #2372 @gquattromani
  • Refactoring on cache file name method in DiskStorage. #2374 @NeoSelf1

8.3.1 - Potential Cache Deadlock

15 Mar 09:09
8.3.1

Choose a tag to compare

Fix

  • Fix a potential deadlock in disk cache. It might happen on older devices & systems when preparing the cache file list. @onevcat @xbk713 #2371