This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of LottieUI with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tfmart/LottieUI.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tfmart/LottieUI
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 41550fb Update README.md
Cloned https://github.com/tfmart/LottieUI.git
Revision (git rev-parse @):
41550fb4ef51ac38c0d36572c8eb325fc8997217
SUCCESS checkout https://github.com/tfmart/LottieUI.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/tfmart/LottieUI.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/4] Write sources
[2/4] Copying Lottie.framework
[3/4] Write swift-version-6F35C1178C84523A.txt
[5/6] Emitting module _LottieStub
[6/6] Compiling _LottieStub Stub.swift
[7/17] Compiling LottieUI WrappedAnimationView+iOS.swift
[8/18] Compiling LottieUI AnimationProgressObserver+macOS.swift
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/AnimationProgressObserver+macOS.swift:55:39: warning: capture of 'self' with non-sendable type 'AnimationProgressObserver' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |
11 | #if !canImport(UIKit) && os(macOS)
12 | class AnimationProgressObserver {
   |       `- note: class 'AnimationProgressObserver' does not conform to the 'Sendable' protocol
13 |     private weak var animationView: LottieAnimationView?
14 |     internal var onFrameChange: ((CGFloat) -> Void)?
   :
53 |     private func tick() {
54 |         DispatchQueue.main.async {
55 |             guard let animationView = self.animationView else { return }
   |                                       `- warning: capture of 'self' with non-sendable type 'AnimationProgressObserver' in a `@Sendable` closure; this is an error in the Swift 6 language mode
56 |             let progress = animationView.realtimeAnimationProgress
57 |             let frame = animationView.realtimeAnimationFrame
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/AnimationProgressObserver+macOS.swift:55:39: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
53 |     private func tick() {
54 |         DispatchQueue.main.async {
55 |             guard let animationView = self.animationView else { return }
   |                                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
   |                                       `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
56 |             let progress = animationView.realtimeAnimationProgress
57 |             let frame = animationView.realtimeAnimationFrame
[9/18] Compiling LottieUI AnimationProgressObserver.swift
[10/18] Compiling LottieUI LottieView+iOS.swift
[11/18] Compiling LottieUI LottieContentSource.swift
[12/18] Compiling LottieUI AsyncLottiePhase.swift
[13/18] Compiling LottieUI AsyncLottieView.swift
[14/18] Compiling LottieUI LottieConfiguration.swift
[15/18] Compiling LottieUI LottieView+macOS.swift
[16/18] Compiling LottieUI LottieView.swift
[17/18] Emitting module LottieUI
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:13:9: warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 | import Lottie
 11 |
 12 | public class WrappedAnimationNSView: NSView, WrappedAnimationProtocol {
    |                                              `- note: add '@preconcurrency' to the 'WrappedAnimationProtocol' conformance to defer isolation checking to run time
 13 |     var animationView: LottieAnimationView!
    |         `- warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 14 |     var observer: AnimationProgressObserver
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:12:9: note: 'animationView' declared here
 10 |
 11 | protocol WrappedAnimationProtocol {
 12 |     var animationView: LottieAnimationView! { get set }
    |         `- note: 'animationView' declared here
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:47:19: warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 45 |     }
 46 |
 47 |     internal func update(withEngine renderingEngine: RenderingEngineOption) {
    |                   |- warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                   `- note: add 'nonisolated' to 'update(withEngine:)' to make this instance method not isolated to the actor
 48 |         let animation = animationView.animation
 49 |         let imageProvider = animationView.imageProvider
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:14:10: note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 12 |     var animationView: LottieAnimationView! { get set }
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
    |          `- note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 15 | }
 16 |
[18/18] Compiling LottieUI WrappedAnimationNSView.swift
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:13:9: warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 | import Lottie
 11 |
 12 | public class WrappedAnimationNSView: NSView, WrappedAnimationProtocol {
    |                                              `- note: add '@preconcurrency' to the 'WrappedAnimationProtocol' conformance to defer isolation checking to run time
 13 |     var animationView: LottieAnimationView!
    |         `- warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 14 |     var observer: AnimationProgressObserver
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:12:9: note: 'animationView' declared here
 10 |
 11 | protocol WrappedAnimationProtocol {
 12 |     var animationView: LottieAnimationView! { get set }
    |         `- note: 'animationView' declared here
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:47:19: warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 45 |     }
 46 |
 47 |     internal func update(withEngine renderingEngine: RenderingEngineOption) {
    |                   |- warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                   `- note: add 'nonisolated' to 'update(withEngine:)' to make this instance method not isolated to the actor
 48 |         let animation = animationView.animation
 49 |         let imageProvider = animationView.imageProvider
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:14:10: note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 12 |     var animationView: LottieAnimationView! { get set }
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
    |          `- note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 15 | }
 16 |
Build complete! (44.13s)
Fetching https://github.com/airbnb/lottie-spm.git
[1/557] Fetching lottie-spm
Fetched https://github.com/airbnb/lottie-spm.git from cache (3.80s)
Computing version for https://github.com/airbnb/lottie-spm.git
Computed https://github.com/airbnb/lottie-spm.git at 4.4.3 (0.70s)
Creating working copy for https://github.com/airbnb/lottie-spm.git
Working copy of https://github.com/airbnb/lottie-spm.git resolved at 4.4.3
[15545/55429257] Downloading https://github.com/airbnb/lottie-ios/releases/download/4.4.3/Lottie-Xcode-15.2.xcframework.zip
Downloading binary artifact https://github.com/airbnb/lottie-ios/releases/download/4.4.3/Lottie-Xcode-15.2.xcframework.zip
Downloaded https://github.com/airbnb/lottie-ios/releases/download/4.4.3/Lottie-Xcode-15.2.xcframework.zip (3.91s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "lottie-spm",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.2",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/airbnb/lottie-spm.git"
    }
  ],
  "manifest_display_name" : "LottieUI",
  "name" : "LottieUI",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "LottieUI",
      "targets" : [
        "LottieUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LottieUITests",
      "module_type" : "SwiftTarget",
      "name" : "LottieUITests",
      "path" : "Tests/LottieUITests",
      "sources" : [
        "LottieUITests.swift"
      ],
      "target_dependencies" : [
        "LottieUI"
      ],
      "type" : "test"
    },
    {
      "c99name" : "LottieUI",
      "module_type" : "SwiftTarget",
      "name" : "LottieUI",
      "path" : "Sources/LottieUI",
      "product_dependencies" : [
        "Lottie"
      ],
      "product_memberships" : [
        "LottieUI"
      ],
      "sources" : [
        "AsyncLottieView/AsyncLottiePhase.swift",
        "AsyncLottieView/AsyncLottieView.swift",
        "LottieConfiguration.swift",
        "LottieContentSource.swift",
        "LottieView/LottieView+iOS.swift",
        "LottieView/LottieView+macOS.swift",
        "LottieView/LottieView.swift",
        "iOS/AnimationProgressObserver.swift",
        "iOS/WrappedAnimationView+iOS.swift",
        "macOS/AnimationProgressObserver+macOS.swift",
        "macOS/WrappedAnimationNSView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.