Build Information
Successful build of PovioKit, reference develop (ad42b2
), with Swift 6.1 for macOS (SPM) on 5 May 2025 11:35:53 UTC.
Swift 6 data race errors: 6
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/poviolabs/PovioKit.git
Reference: develop
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/poviolabs/PovioKit
* branch develop -> FETCH_HEAD
* [new branch] develop -> origin/develop
HEAD is now at ad42b26 Release/5.1.1 (#353)
Cloned https://github.com/poviolabs/PovioKit.git
Revision (git rev-parse @):
ad42b2651ae20a00eef2e0a3746c6661c5e5e4ed
SUCCESS checkout https://github.com/poviolabs/PovioKit.git at develop
Fetching https://github.com/Alamofire/Alamofire
[1/30137] Fetching alamofire
Fetched https://github.com/Alamofire/Alamofire from cache (2.41s)
Computing version for https://github.com/Alamofire/Alamofire
Computed https://github.com/Alamofire/Alamofire at 5.9.1 (2.88s)
Creating working copy for https://github.com/Alamofire/Alamofire
Working copy of https://github.com/Alamofire/Alamofire resolved at 5.9.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "poviokit",
"name": "PovioKit",
"url": "https://github.com/poviolabs/PovioKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/PovioKit",
"dependencies": [
{
"identity": "alamofire",
"name": "Alamofire",
"url": "https://github.com/Alamofire/Alamofire",
"version": "5.10.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Alamofire",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/poviolabs/PovioKit.git
[1/13756] Fetching poviokit
Fetched https://github.com/poviolabs/PovioKit.git from cache (3.31s)
Fetching https://github.com/Alamofire/Alamofire from cache
Fetched https://github.com/Alamofire/Alamofire from cache (0.62s)
Computing version for https://github.com/Alamofire/Alamofire
Computed https://github.com/Alamofire/Alamofire at 5.10.2 (1.12s)
Creating working copy for https://github.com/poviolabs/PovioKit.git
Working copy of https://github.com/poviolabs/PovioKit.git resolved at develop (ad42b26)
Creating working copy for https://github.com/Alamofire/Alamofire
Working copy of https://github.com/Alamofire/Alamofire resolved at 5.10.2
warning: '.resolve-product-dependencies': dependency 'poviokit' is not used by any target
Found 1 product dependencies
- Alamofire
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/poviolabs/PovioKit.git
https://github.com/poviolabs/PovioKit.git
{
"dependencies" : [
{
"identity" : "alamofire",
"requirement" : {
"range" : [
{
"lower_bound" : "5.0.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Alamofire/Alamofire"
}
],
"manifest_display_name" : "PovioKit",
"name" : "PovioKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "PovioKitCore",
"targets" : [
"PovioKitCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitUtilities",
"targets" : [
"PovioKitUtilities"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitNetworking",
"targets" : [
"PovioKitNetworking"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitPromise",
"targets" : [
"PovioKitPromise"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitUIKit",
"targets" : [
"PovioKitUIKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitSwiftUI",
"targets" : [
"PovioKitSwiftUI"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitAsync",
"targets" : [
"PovioKitAsync"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "Tests",
"module_type" : "SwiftTarget",
"name" : "Tests",
"path" : "Tests/Tests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/Tests/Resources/PovioKit.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Core/AppInfoTests.swift",
"Core/Extensions/Foundation/CollectionGroupedTests.swift",
"Core/Extensions/Foundation/CollectionTests.swift",
"Core/Extensions/Foundation/DataTests.swift",
"Core/Extensions/Foundation/DecodableDictionaryTests.swift",
"Core/Extensions/Foundation/DispatchTimeIntervalTests.swift",
"Core/Extensions/Foundation/DoubleTests.swift",
"Core/Extensions/Foundation/EncodableTests.swift",
"Core/Extensions/Foundation/OptionalTests.swift",
"Core/Extensions/Foundation/StringTests.swift",
"Core/Extensions/Foundation/URLTests.swift",
"Core/Extensions/MapKit/MKAnnotationViewTests.swift",
"Core/Extensions/UIKit/UIColorTests.swift",
"Core/Extensions/UIKit/UIDeviceTests.swift",
"Core/Extensions/UIKit/UIEdgeInsetsTests.swift",
"Core/Extensions/UIKit/UIImageTests.swift",
"Core/Extensions/UIKit/UIResponderTests.swift",
"Core/Extensions/UIKit/UIWindowTests.swift",
"Core/Utilities/App Version Validator/AppVersionValidatorTests.swift",
"Core/Utilities/AttributedStringBuilder/AttributedStringBuilderTests.swift",
"Core/Utilities/Broadcast/BroadcastTests.swift",
"Core/Utilities/BundleReader/BundleReaderTests.swift",
"Core/Utilities/DispatchTimer/DispatchTimerTests.swift",
"Core/Utilities/Exif/ExifTests.swift",
"Core/Utilities/Money/MoneyTests.swift",
"Core/Utilities/StartupService/StartupProcessServiceTests.swift",
"Core/Utilities/Throttler/ThrottlerTests.swift",
"Core/Utilities/UserDefaults/UserDefaultTests.swift",
"PromiseKit/EitherTests.swift",
"PromiseKit/PromiseTests.swift",
"UI/UIKit/Extensions/UICollectionReusableViewTests.swift",
"UI/UIKit/Extensions/UITableViewCellTests.swift",
"UI/UIKit/Extensions/UITableViewHeaderFooterViewTests.swift",
"UI/UIKit/Extensions/UIViewControllerTests.swift",
"UI/UIKit/Extensions/UIViewTests.swift",
"Utilities/XCConfigValue/MockBundleReader.swift",
"Utilities/XCConfigValue/XCConfigValueTests.swift"
],
"target_dependencies" : [
"PovioKitCore",
"PovioKitPromise",
"PovioKitNetworking",
"PovioKitUIKit",
"PovioKitSwiftUI",
"PovioKitUtilities",
"PovioKitAsync"
],
"type" : "test"
},
{
"c99name" : "PovioKitUtilities",
"module_type" : "SwiftTarget",
"name" : "PovioKitUtilities",
"path" : "Sources/Utilities",
"product_memberships" : [
"PovioKitUtilities",
"PovioKitUIKit"
],
"sources" : [
"AppVersionValidator/AppVersionValidator.swift",
"AttributedStringBuilder/AttributedStringBuilder.swift",
"AttributedStringBuilder/UILabel+BuilderCompatible.swift",
"AttributedStringBuilder/UITextField+BuilderCompatible.swift",
"Broadcast/Broadcast.swift",
"BundleReader/BundleReader.swift",
"Camera/Camera+PovioKit.swift",
"Camera/Camera.swift",
"Camera/CameraService.swift",
"Camera/PhotoCamera.swift",
"Camera/QRCodeScanner.swift",
"ColorInterpolator/ColorInterpolator.swift",
"Delegated/Delegated.swift",
"DispatchTimer/DispatchTimer.swift",
"Exif/Exif.swift",
"Exif/ExifError.swift",
"Exif/ExifImageSource.swift",
"ImageSource/ImageSource.swift",
"InAppPurchase/InAppPurchaseError.swift",
"InAppPurchase/InAppPurchaseService.swift",
"MediaPlayer/AudioPlayer.swift",
"MediaPlayer/MediaPlayer+Models.swift",
"MediaPlayer/MediaPlayer.swift",
"MediaPlayer/MediaStream.swift",
"Money/Money+Currency.swift",
"Money/Money+Defaults.swift",
"Money/Money+Extensions.swift",
"Money/Money.swift",
"PropertyWrapper/UserDefault.swift",
"PropertyWrapper/XCConfigValue.swift",
"StartupService/StartupProcess.swift",
"StartupService/StartupProcessService.swift",
"Throttler/Throttler.swift"
],
"target_dependencies" : [
"PovioKitCore"
],
"type" : "library"
},
{
"c99name" : "PovioKitUIKit",
"module_type" : "SwiftTarget",
"name" : "PovioKitUIKit",
"path" : "Sources/UI/UIKit",
"product_memberships" : [
"PovioKitUIKit"
],
"sources" : [
"DynamicCollectionCell/DynamicCollectionCell.swift",
"Extensions/UICollectionReusableView+PovioKit.swift",
"Extensions/UICollectionView+PovioKit.swift",
"Extensions/UIProgressView+PovioKit.swift",
"Extensions/UITableView+PovioKit.swift",
"Extensions/UITableViewCell+PovioKit.swift",
"Extensions/UITableViewHeaderFooterView+PovioKit.swift",
"Extensions/UIView+PovioKit.swift",
"Extensions/UIViewController+PovioKit.swift",
"GradientView/GradientView.swift",
"PaddingLabel/PaddingLabel.swift",
"TextField/TextField.swift"
],
"target_dependencies" : [
"PovioKitCore",
"PovioKitUtilities"
],
"type" : "library"
},
{
"c99name" : "PovioKitSwiftUI",
"module_type" : "SwiftTarget",
"name" : "PovioKitSwiftUI",
"path" : "Sources/UI/SwiftUI",
"product_memberships" : [
"PovioKitSwiftUI"
],
"sources" : [
"Extensions/AnyTransition+PovioKit.swift",
"Extensions/Color+PovioKit.swift",
"Extensions/Text+PovioKit.swift",
"View Modifiers/MaterialBlurBackgroundModifier.swift",
"View Modifiers/MeasureSizeModifier.swift",
"View Modifiers/OnFirstAppearModifier.swift",
"View Modifiers/PhotoPickerModifier.swift",
"View Modifiers/PinchToZoomModifier.swift",
"View Modifiers/SquaredModifier.swift",
"View Modifiers/TextFieldLimitModifer.swift",
"Views/AnimatedImage/AnimatedImage.swift",
"Views/LinearProgressStyle/LinearProgressStyle.swift",
"Views/MaterialBlurView/MaterialBlurView.swift",
"Views/PhotoPickerView/PhotoPickerView.swift",
"Views/RemoteImage/RemoteImage.swift",
"Views/ScrollViewWithOffset/ScrollViewWithOffset.swift",
"Views/SimpleColorPicker/SimpleColorPicker.swift"
],
"target_dependencies" : [
"PovioKitCore"
],
"type" : "library"
},
{
"c99name" : "PovioKitPromise",
"module_type" : "SwiftTarget",
"name" : "PovioKitPromise",
"path" : "Sources/PromiseKit",
"product_memberships" : [
"PovioKitNetworking",
"PovioKitPromise"
],
"sources" : [
"After.swift",
"All.swift",
"Any.swift",
"ConcurrentDispatch.swift",
"Either.swift",
"Future.swift",
"Poll.swift",
"Promise.swift",
"Race.swift",
"Sequence.swift",
"Wrap.swift"
],
"type" : "library"
},
{
"c99name" : "PovioKitNetworking",
"module_type" : "SwiftTarget",
"name" : "PovioKitNetworking",
"path" : "Sources/Networking",
"product_dependencies" : [
"Alamofire"
],
"product_memberships" : [
"PovioKitNetworking"
],
"sources" : [
"AlamofireNetworkClient/AlamofireConsoleLogger.swift",
"AlamofireNetworkClient/AlamofireNetworkClient.swift",
"AlamofireNetworkClient/DomainConvertible.swift",
"AlamofireNetworkClient/Extensions/ParameterEncoder+PovioKit.swift",
"AlamofireNetworkClient/Extensions/URLEncodedFormParameterEncoder+PovioKit.swift",
"AlamofireNetworkClient/OAuth/OAuthCredentials.swift"
],
"target_dependencies" : [
"PovioKitPromise"
],
"type" : "library"
},
{
"c99name" : "PovioKitCore",
"module_type" : "SwiftTarget",
"name" : "PovioKitCore",
"path" : "Sources/Core",
"product_memberships" : [
"PovioKitCore",
"PovioKitUtilities",
"PovioKitUIKit",
"PovioKitSwiftUI"
],
"sources" : [
"AppInfo.swift",
"Extensions/AppKit/NSView+PovioKit.swift",
"Extensions/AppKit/NSWindow+PovioKit.swift",
"Extensions/Foundation/Collection+PovioKit.swift",
"Extensions/Foundation/Data+PovioKit.swift",
"Extensions/Foundation/Date+PovioKit.swift",
"Extensions/Foundation/DateFormatter+PovioKit.swift",
"Extensions/Foundation/DecodableDictionary+PovioKit.swift",
"Extensions/Foundation/DispatchTimeInterval+PovioKit.swift",
"Extensions/Foundation/Double+PovioKit.swift",
"Extensions/Foundation/Encodable+PovioKit.swift",
"Extensions/Foundation/Optional+PovioKit.swift",
"Extensions/Foundation/Result+PovioKit.swift",
"Extensions/Foundation/String+PovioKit.swift",
"Extensions/Foundation/URL+PovioKit.swift",
"Extensions/MapKit/MKAnnotationView+PovioKit.swift",
"Extensions/MapKit/MKCircle+PovioKit.swift",
"Extensions/MapKit/MKMapView+PovioKit.swift",
"Extensions/MapKit/MKPolygon+PovioKit.swift",
"Extensions/Other/SKStoreReviewController+PovioKit.swift",
"Extensions/SwiftUI/View+PovioKit.swift",
"Extensions/UIKit/CGSize+PovioKit.swift",
"Extensions/UIKit/UIColor+PovioKit.swift",
"Extensions/UIKit/UIDevice+PovioKit.swift",
"Extensions/UIKit/UIEdgeInsets+PovioKit.swift",
"Extensions/UIKit/UIImage+Kingfisher.swift",
"Extensions/UIKit/UIImage+PovioKit.swift",
"Extensions/UIKit/UIResponder+PovioKit.swift",
"Extensions/UIKit/UIWindow+PovioKit.swift",
"Logger/Logger.swift"
],
"type" : "library"
},
{
"c99name" : "PovioKitAsync",
"module_type" : "SwiftTarget",
"name" : "PovioKitAsync",
"path" : "Sources/Async",
"product_memberships" : [
"PovioKitAsync"
],
"sources" : [
"AsyncThrottleSequence.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/10] Write sources
[5/10] Copying PrivacyInfo.xcprivacy
[5/10] Write sources
[9/10] Write swift-version-2F0A5646E1D333AE.txt
[11/91] Compiling PovioKitAsync AsyncThrottleSequence.swift
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:95:9: warning: type 'AsyncThrottleSequence<BaseSequence, C>.Element' (aka 'BaseSequence.Element') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
93 | public class Iterator: AsyncIteratorProtocol {
94 | var baseIterator: BaseSequence.AsyncIterator
95 | var taskInExecution: Task<Element?, Error>?
| `- warning: type 'AsyncThrottleSequence<BaseSequence, C>.Element' (aka 'BaseSequence.Element') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
96 | let clock: C
97 | let delayBetweenTasks: C.Duration
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:121:32: warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
119 | /// - Returns: The next element in the sequence, or `nil` if there are no more elements.
120 | public func next() async throws -> Element? {
121 | let task = lock.withLock {
| `- warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 | taskInExecution?.cancel()
123 | taskInExecution = nil
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:122:26: warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 | public func next() async throws -> Element? {
121 | let task = lock.withLock {
122 | taskInExecution?.cancel()
| `- warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
123 | taskInExecution = nil
124 | let task = Task {
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:124:20: warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 | taskInExecution?.cancel()
123 | taskInExecution = nil
124 | let task = Task {
| `- warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | try await Task.sleep(
126 | until: clock.now.advanced(by: delayBetweenTasks),
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:124:20: warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 | taskInExecution?.cancel()
123 | taskInExecution = nil
124 | let task = Task {
| `- warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | try await Task.sleep(
126 | until: clock.now.advanced(by: delayBetweenTasks),
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:137:31: warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
135 | }
136 | do {
137 | return try await task.value
| `- warning: type 'BaseSequence.Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
138 | } catch {
139 | if error is CancellationError {
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:124:25: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
122 | taskInExecution?.cancel()
123 | taskInExecution = nil
124 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
125 | try await Task.sleep(
126 | until: clock.now.advanced(by: delayBetweenTasks),
| `- note: closure captures 'self' which is accessible to code in the current task
127 | clock: clock
128 | )
[12/91] Emitting module PovioKitAsync
/Users/admin/builder/spi-builder-workspace/Sources/Async/AsyncThrottleSequence.swift:95:9: warning: type 'AsyncThrottleSequence<BaseSequence, C>.Element' (aka 'BaseSequence.Element') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
93 | public class Iterator: AsyncIteratorProtocol {
94 | var baseIterator: BaseSequence.AsyncIterator
95 | var taskInExecution: Task<Element?, Error>?
| `- warning: type 'AsyncThrottleSequence<BaseSequence, C>.Element' (aka 'BaseSequence.Element') does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
96 | let clock: C
97 | let delayBetweenTasks: C.Duration
[13/91] Compiling Alamofire RequestCompression.swift
[14/91] Compiling Alamofire RequestInterceptor.swift
[15/91] Compiling Alamofire ResponseSerialization.swift
[16/91] Compiling Alamofire RetryPolicy.swift
[17/95] Compiling Alamofire DispatchQueue+Alamofire.swift
[18/95] Compiling Alamofire OperationQueue+Alamofire.swift
[19/95] Compiling PovioKitCore CGSize+PovioKit.swift
[20/95] Compiling PovioKitCore UIColor+PovioKit.swift
[21/95] Compiling PovioKitPromise Promise.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:190:13: warning: capture of 'seal' with non-sendable type 'Promise<Value>' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
:
188 | case .success(let value):
189 | dispatchQueue.asyncAfter(deadline: .now() + duration) {
190 | seal.resolve(with: value, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<Value>' in a '@Sendable' closure
191 | }
192 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:190:32: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
:
188 | case .success(let value):
189 | dispatchQueue.asyncAfter(deadline: .now() + duration) {
190 | seal.resolve(with: value, on: dispatchQueue)
| `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure
191 | }
192 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:194:13: warning: capture of 'seal' with non-sendable type 'Promise<Value>' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
:
192 | case .failure(let error):
193 | dispatchQueue.asyncAfter(deadline: .now() + duration) {
194 | seal.reject(with: error, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<Value>' in a '@Sendable' closure
195 | }
196 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:901:28: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
896 | extension Optional where Wrapped == DispatchQueue {
897 | @inline(__always)
898 | func async(execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
899 | switch self {
900 | case let queue?:
901 | queue.async(execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
902 | case nil:
903 | work()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:881:18: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
879 | switch $0 {
880 | case .success(let value):
881 | cont.resume(returning: value)
| |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
882 | case .failure(let error):
883 | cont.resume(throwing: error)
[22/95] Compiling PovioKitPromise Either.swift
[23/95] Compiling PovioKitPromise Race.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Race.swift:31:13: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
29 | case .success(let value):
30 | barrier.async(flags: .barrier) {
31 | seal.resolve(with: value)
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
32 | }
33 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Race.swift:31:32: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
14 | /// - Parameter promises: A collection of `Promises`.
15 | /// - Returns: The result of the first fullfiled promise in the collection wrapped in a promise.
16 | public func race<T, C: Collection>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
17 | on dispatchQueue: DispatchQueue = .main,
18 | promises: C
:
29 | case .success(let value):
30 | barrier.async(flags: .barrier) {
31 | seal.resolve(with: value)
| `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
32 | }
33 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Race.swift:35:13: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
33 | case .failure(let error):
34 | barrier.async(flags: .barrier) {
35 | seal.reject(with: error, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
36 | }
37 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
[24/95] Compiling PovioKitPromise Any.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Any.swift:31:17: warning: capture of 'promises' with non-sendable type 'C' in a '@Sendable' closure
16 | /// - Parameter promises: A collection of `Promises` that you want to combine.
17 | /// - Returns: An array of `Optional<T>` values wrapped in a Promise.
18 | public func any<T, C: Collection>(
| `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
19 | on dispatchQueue: DispatchQueue? = .main,
20 | promises: C
:
29 | promise.finally { result in
30 | barrier.async(flags: .barrier) {
31 | guard promises.allSatisfy({ $0.isResolved }) else { return }
| `- warning: capture of 'promises' with non-sendable type 'C' in a '@Sendable' closure
32 | if promises.contains(where: { $0.isFulfilled }) {
33 | seal.resolve(with: promises.map { $0.value }, on: dispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Any.swift:33:13: warning: capture of 'seal' with non-sendable type 'Promise<[T?]>' in a '@Sendable' closure
31 | guard promises.allSatisfy({ $0.isResolved }) else { return }
32 | if promises.contains(where: { $0.isFulfilled }) {
33 | seal.resolve(with: promises.map { $0.value }, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<[T?]>' in a '@Sendable' closure
34 | } else {
35 | seal.reject(with: promises.first(where: { $0.isRejected })!.error!)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
[25/95] Compiling PovioKitPromise Future.swift
[26/95] Compiling PovioKitPromise Poll.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:133:92: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
131 | }
132 | retry -= 1
133 | pollingDispatchQueue.asyncAfter(deadline: .now() + checkAfter(value), execute: polling)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
134 | case .success(let value):
135 | seal.resolve(with: value, on: resolveDispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:125:9: warning: capture of 'promise' with non-sendable type 'Promise<T>' in a '@Sendable' closure
123 | let promise = request()
124 | barrier.async(flags: .barrier) {
125 | promise.finally {
| `- warning: capture of 'promise' with non-sendable type 'Promise<T>' in a '@Sendable' closure
126 | switch $0 {
127 | case .success(let value) where predicate(value):
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:127:42: warning: capture of 'predicate' with non-sendable type '(T) -> Bool' in a '@Sendable' closure
125 | promise.finally {
126 | switch $0 {
127 | case .success(let value) where predicate(value):
| |- warning: capture of 'predicate' with non-sendable type '(T) -> Bool' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | guard retry > 0 else {
129 | seal.reject(with: NSError(domain: "com.promise.poll", code: 999, userInfo: ["message": "Reached a maximum number of retries"]))
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:129:15: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
127 | case .success(let value) where predicate(value):
128 | guard retry > 0 else {
129 | seal.reject(with: NSError(domain: "com.promise.poll", code: 999, userInfo: ["message": "Reached a maximum number of retries"]))
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
130 | return
131 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:133:64: warning: capture of 'checkAfter' with non-sendable type '(T) -> DispatchTimeInterval' in a '@Sendable' closure
131 | }
132 | retry -= 1
133 | pollingDispatchQueue.asyncAfter(deadline: .now() + checkAfter(value), execute: polling)
| |- warning: capture of 'checkAfter' with non-sendable type '(T) -> DispatchTimeInterval' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
134 | case .success(let value):
135 | seal.resolve(with: value, on: resolveDispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:133:92: warning: capture of 'polling()' with non-sendable type '<T> () -> ()' in a '@Sendable' closure
131 | }
132 | retry -= 1
133 | pollingDispatchQueue.asyncAfter(deadline: .now() + checkAfter(value), execute: polling)
| `- warning: capture of 'polling()' with non-sendable type '<T> () -> ()' in a '@Sendable' closure
134 | case .success(let value):
135 | seal.resolve(with: value, on: resolveDispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:127:42: warning: capture of 'predicate' with non-sendable type '(T) -> Bool' in an isolated closure; this is an error in the Swift 6 language mode
125 | promise.finally {
126 | switch $0 {
127 | case .success(let value) where predicate(value):
| |- warning: capture of 'predicate' with non-sendable type '(T) -> Bool' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | guard retry > 0 else {
129 | seal.reject(with: NSError(domain: "com.promise.poll", code: 999, userInfo: ["message": "Reached a maximum number of retries"]))
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:129:15: warning: capture of 'seal' with non-sendable type 'Promise<T>' in an isolated closure; this is an error in the Swift 6 language mode
127 | case .success(let value) where predicate(value):
128 | guard retry > 0 else {
129 | seal.reject(with: NSError(domain: "com.promise.poll", code: 999, userInfo: ["message": "Reached a maximum number of retries"]))
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in an isolated closure; this is an error in the Swift 6 language mode
130 | return
131 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:133:64: warning: capture of 'checkAfter' with non-sendable type '(T) -> DispatchTimeInterval' in an isolated closure; this is an error in the Swift 6 language mode
131 | }
132 | retry -= 1
133 | pollingDispatchQueue.asyncAfter(deadline: .now() + checkAfter(value), execute: polling)
| |- warning: capture of 'checkAfter' with non-sendable type '(T) -> DispatchTimeInterval' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
134 | case .success(let value):
135 | seal.resolve(with: value, on: resolveDispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:133:92: warning: capture of 'polling()' with non-sendable type '<T> () -> ()' in an isolated closure; this is an error in the Swift 6 language mode
131 | }
132 | retry -= 1
133 | pollingDispatchQueue.asyncAfter(deadline: .now() + checkAfter(value), execute: polling)
| `- warning: capture of 'polling()' with non-sendable type '<T> () -> ()' in an isolated closure; this is an error in the Swift 6 language mode
134 | case .success(let value):
135 | seal.resolve(with: value, on: resolveDispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:128:19: warning: reference to captured var 'retry' in concurrently-executing code; this is an error in the Swift 6 language mode
126 | switch $0 {
127 | case .success(let value) where predicate(value):
128 | guard retry > 0 else {
| `- warning: reference to captured var 'retry' in concurrently-executing code; this is an error in the Swift 6 language mode
129 | seal.reject(with: NSError(domain: "com.promise.poll", code: 999, userInfo: ["message": "Reached a maximum number of retries"]))
130 | return
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:132:13: warning: mutation of captured var 'retry' in concurrently-executing code; this is an error in the Swift 6 language mode
130 | return
131 | }
132 | retry -= 1
| `- warning: mutation of captured var 'retry' in concurrently-executing code; this is an error in the Swift 6 language mode
133 | pollingDispatchQueue.asyncAfter(deadline: .now() + checkAfter(value), execute: polling)
134 | case .success(let value):
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Poll.swift:122:10: warning: concurrently-executed local function 'polling()' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
120 | let barrier = DispatchQueue(label: "barrier", attributes: .concurrent)
121 | var retry = retry
122 | func polling() {
| `- warning: concurrently-executed local function 'polling()' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
123 | let promise = request()
124 | barrier.async(flags: .barrier) {
[27/95] Compiling Alamofire MultipartFormData.swift
[28/95] Compiling Alamofire MultipartUpload.swift
[29/95] Compiling Alamofire NetworkReachabilityManager.swift
[30/95] Compiling Alamofire RedirectHandler.swift
[31/95] Compiling Alamofire Alamofire.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:14:7: warning: capture of 'seal' with non-sendable type 'Promise<()>' in a '@Sendable' closure
12 | Promise { seal in
13 | dispatchQueue.asyncAfter(deadline: delay) {
14 | seal.resolve(on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<()>' in a '@Sendable' closure
15 | }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:22:7: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
20 | Promise { seal in
21 | dispatchQueue.asyncAfter(deadline: delay) {
22 | seal.resolve(with: value(), on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
23 | }
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:22:26: warning: capture of 'value' with non-sendable type '() -> T' in a '@Sendable' closure
20 | Promise { seal in
21 | dispatchQueue.asyncAfter(deadline: delay) {
22 | seal.resolve(with: value(), on: dispatchQueue)
| |- warning: capture of 'value' with non-sendable type '() -> T' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
23 | }
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:30:7: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
28 | Promise { seal in
29 | dispatchQueue.asyncAfter(deadline: delay) {
30 | seal.resolve(with: execute(), on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
31 | }
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:30:26: warning: capture of 'execute' with non-sendable type '() -> T' in a '@Sendable' closure
28 | Promise { seal in
29 | dispatchQueue.asyncAfter(deadline: delay) {
30 | seal.resolve(with: execute(), on: dispatchQueue)
| |- warning: capture of 'execute' with non-sendable type '() -> T' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
31 | }
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/All.swift:33:16: warning: capture of 'promises' with non-sendable type 'C' in a '@Sendable' closure
16 | /// - Returns: An array of `T`s wrapped in a promise. If any of the promises fails
17 | /// then the new Promise fails as well.
18 | public func all<T, C: Collection>(
| `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
19 | on dispatchQueue: DispatchQueue? = .main,
20 | promises: C
:
31 | case .success:
32 | barrier.async(flags: .barrier) {
33 | if promises.allSatisfy({ $0.isFulfilled }) {
| `- warning: capture of 'promises' with non-sendable type 'C' in a '@Sendable' closure
34 | seal.resolve(with: promises.compactMap { $0.value }, on: dispatchQueue)
35 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/All.swift:34:15: warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
32 | barrier.async(flags: .barrier) {
33 | if promises.allSatisfy({ $0.isFulfilled }) {
34 | seal.resolve(with: promises.compactMap { $0.value }, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/All.swift:39:13: warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
37 | case .failure(let error):
38 | barrier.async(flags: .barrier) {
39 | seal.reject(with: error, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
40 | }
41 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
[32/95] Compiling Alamofire AFError.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:14:7: warning: capture of 'seal' with non-sendable type 'Promise<()>' in a '@Sendable' closure
12 | Promise { seal in
13 | dispatchQueue.asyncAfter(deadline: delay) {
14 | seal.resolve(on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<()>' in a '@Sendable' closure
15 | }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:22:7: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
20 | Promise { seal in
21 | dispatchQueue.asyncAfter(deadline: delay) {
22 | seal.resolve(with: value(), on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
23 | }
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:22:26: warning: capture of 'value' with non-sendable type '() -> T' in a '@Sendable' closure
20 | Promise { seal in
21 | dispatchQueue.asyncAfter(deadline: delay) {
22 | seal.resolve(with: value(), on: dispatchQueue)
| |- warning: capture of 'value' with non-sendable type '() -> T' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
23 | }
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:30:7: warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
28 | Promise { seal in
29 | dispatchQueue.asyncAfter(deadline: delay) {
30 | seal.resolve(with: execute(), on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<T>' in a '@Sendable' closure
31 | }
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/After.swift:30:26: warning: capture of 'execute' with non-sendable type '() -> T' in a '@Sendable' closure
28 | Promise { seal in
29 | dispatchQueue.asyncAfter(deadline: delay) {
30 | seal.resolve(with: execute(), on: dispatchQueue)
| |- warning: capture of 'execute' with non-sendable type '() -> T' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
31 | }
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/All.swift:33:16: warning: capture of 'promises' with non-sendable type 'C' in a '@Sendable' closure
16 | /// - Returns: An array of `T`s wrapped in a promise. If any of the promises fails
17 | /// then the new Promise fails as well.
18 | public func all<T, C: Collection>(
| `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
19 | on dispatchQueue: DispatchQueue? = .main,
20 | promises: C
:
31 | case .success:
32 | barrier.async(flags: .barrier) {
33 | if promises.allSatisfy({ $0.isFulfilled }) {
| `- warning: capture of 'promises' with non-sendable type 'C' in a '@Sendable' closure
34 | seal.resolve(with: promises.compactMap { $0.value }, on: dispatchQueue)
35 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/All.swift:34:15: warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
32 | barrier.async(flags: .barrier) {
33 | if promises.allSatisfy({ $0.isFulfilled }) {
34 | seal.resolve(with: promises.compactMap { $0.value }, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/All.swift:39:13: warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
37 | case .failure(let error):
38 | barrier.async(flags: .barrier) {
39 | seal.reject(with: error, on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<[T]>' in a '@Sendable' closure
40 | }
41 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
[33/95] Compiling PovioKitPromise ConcurrentDispatch.swift
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:63:35: warning: capture of 'activePromises' with non-sendable type '[(promise: Promise<T>, retryCount: Int, segmentIndex: Int)]' in a '@Sendable' closure
61 | func observer(_ result: Result<T, Error>, arrayIndex: Int) {
62 | barrier.async(flags: .barrier) {
63 | let currentSegmentIndex = activePromises[arrayIndex].segmentIndex
| `- warning: capture of 'activePromises' with non-sendable type '[(promise: Promise<T>, retryCount: Int, segmentIndex: Int)]' in a '@Sendable' closure
64 | let alreadyRetriedCount = activePromises[arrayIndex].retryCount
65 |
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:66:16: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
41 | /// - Parameter dispatchQueue: The DispatchQueue on which the result should be notified.
42 | ///
43 | public func concurrentlyDispatch<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
44 | spawnTask next: @escaping (Int) -> Promise<T>?,
45 | concurrent: Int,
:
64 | let alreadyRetriedCount = activePromises[arrayIndex].retryCount
65 |
66 | switch result {
| `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
67 | case .success:
68 | guard let promise = next(segmentIndex) else {
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:68:31: warning: capture of 'next' with non-sendable type '(Int) -> Promise<T>?' in a '@Sendable' closure
66 | switch result {
67 | case .success:
68 | guard let promise = next(segmentIndex) else {
| |- warning: capture of 'next' with non-sendable type '(Int) -> Promise<T>?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
69 | if activePromises.allSatisfy({ $0.promise.isFulfilled }) { // TODO: - Should we optimise by keeping a counter of how many promises have succeeded thus far?
70 | seal.resolve(on: dispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:70:15: warning: capture of 'seal' with non-sendable type 'Promise<()>' in a '@Sendable' closure
68 | guard let promise = next(segmentIndex) else {
69 | if activePromises.allSatisfy({ $0.promise.isFulfilled }) { // TODO: - Should we optimise by keeping a counter of how many promises have succeeded thus far?
70 | seal.resolve(on: dispatchQueue)
| `- warning: capture of 'seal' with non-sendable type 'Promise<()>' in a '@Sendable' closure
71 | }
72 | return
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/Promise.swift:11:14: note: generic class 'Promise' does not conform to the 'Sendable' protocol
9 | import Foundation
10 |
11 | public class Promise<Value>: Future<Value, Error> {
| `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
12 | public override init() {
13 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:74:29: warning: capture of 'observer(_:arrayIndex:)' with non-sendable type '<T> (Result<T, any Error>, arrayIndex: Int) -> ()' in a '@Sendable' closure
72 | return
73 | }
74 | promise.finally { observer($0, arrayIndex: arrayIndex) }
| `- warning: capture of 'observer(_:arrayIndex:)' with non-sendable type '<T> (Result<T, any Error>, arrayIndex: Int) -> ()' in a '@Sendable' closure
75 | activePromises[arrayIndex] = (
76 | promise: promise,
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:63:35: warning: mutation of captured var 'activePromises' in concurrently-executing code
61 | func observer(_ result: Result<T, Error>, arrayIndex: Int) {
62 | barrier.async(flags: .barrier) {
63 | let currentSegmentIndex = activePromises[arrayIndex].segmentIndex
| `- warning: mutation of captured var 'activePromises' in concurrently-executing code
64 | let alreadyRetriedCount = activePromises[arrayIndex].retryCount
65 |
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:64:35: warning: mutation of captured var 'activePromises' in concurrently-executing code
62 | barrier.async(flags: .barrier) {
63 | let currentSegmentIndex = activePromises[arrayIndex].segmentIndex
64 | let alreadyRetriedCount = activePromises[arrayIndex].retryCount
| `- warning: mutation of captured var 'activePromises' in concurrently-executing code
65 |
66 | switch result {
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:68:36: warning: reference to captured var 'segmentIndex' in concurrently-executing code
66 | switch result {
67 | case .success:
68 | guard let promise = next(segmentIndex) else {
| `- warning: reference to captured var 'segmentIndex' in concurrently-executing code
69 | if activePromises.allSatisfy({ $0.promise.isFulfilled }) { // TODO: - Should we optimise by keeping a counter of how many promises have succeeded thus far?
70 | seal.resolve(on: dispatchQueue)
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:69:16: warning: reference to captured var 'activePromises' in concurrently-executing code
67 | case .success:
68 | guard let promise = next(segmentIndex) else {
69 | if activePromises.allSatisfy({ $0.promise.isFulfilled }) { // TODO: - Should we optimise by keeping a counter of how many promises have succeeded thus far?
| `- warning: reference to captured var 'activePromises' in concurrently-executing code
70 | seal.resolve(on: dispatchQueue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:74:29: warning: capture of 'observer(_:arrayIndex:)' with non-sendable type '<T> (Result<T, any Error>, arrayIndex: Int) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
72 | return
73 | }
74 | promise.finally { observer($0, arrayIndex: arrayIndex) }
| `- warning: capture of 'observer(_:arrayIndex:)' with non-sendable type '<T> (Result<T, any Error>, arrayIndex: Int) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
75 | activePromises[arrayIndex] = (
76 | promise: promise,
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:61:10: warning: concurrently-executed local function 'observer(_:arrayIndex:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
59 | }
60 |
61 | func observer(_ result: Result<T, Error>, arrayIndex: Int) {
| `- warning: concurrently-executed local function 'observer(_:arrayIndex:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
62 | barrier.async(flags: .barrier) {
63 | let currentSegmentIndex = activePromises[arrayIndex].segmentIndex
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:75:11: warning: mutation of captured var 'activePromises' in concurrently-executing code
73 | }
74 | promise.finally { observer($0, arrayIndex: arrayIndex) }
75 | activePromises[arrayIndex] = (
| `- warning: mutation of captured var 'activePromises' in concurrently-executing code
76 | promise: promise,
77 | retryCount: 0,
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:78:27: warning: reference to captured var 'segmentIndex' in concurrently-executing code
76 | promise: promise,
77 | retryCount: 0,
78 | segmentIndex: segmentIndex
| `- warning: reference to captured var 'segmentIndex' in concurrently-executing code
79 | )
80 | segmentIndex += 1
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:80:11: warning: mutation of captured var 'segmentIndex' in concurrently-executing code
78 | segmentIndex: segmentIndex
79 | )
80 | segmentIndex += 1
| `- warning: mutation of captured var 'segmentIndex' in concurrently-executing code
81 | case .failure where alreadyRetriedCount < retryCount:
82 | let promise = next(currentSegmentIndex)!
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:83:29: warning: capture of 'observer(_:arrayIndex:)' with non-sendable type '<T> (Result<T, any Error>, arrayIndex: Int) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
81 | case .failure where alreadyRetriedCount < retryCount:
82 | let promise = next(currentSegmentIndex)!
83 | promise.finally { observer($0, arrayIndex: arrayIndex) }
| `- warning: capture of 'observer(_:arrayIndex:)' with non-sendable type '<T> (Result<T, any Error>, arrayIndex: Int) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
84 | activePromises[arrayIndex] = (
85 | promise: promise,
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:84:11: warning: mutation of captured var 'activePromises' in concurrently-executing code
82 | let promise = next(currentSegmentIndex)!
83 | promise.finally { observer($0, arrayIndex: arrayIndex) }
84 | activePromises[arrayIndex] = (
| `- warning: mutation of captured var 'activePromises' in concurrently-executing code
85 | promise: promise,
86 | retryCount: alreadyRetriedCount + 1,
/Users/admin/builder/spi-builder-workspace/Sources/PromiseKit/ConcurrentDispatch.swift:90:11: warning: reference to captured var 'activePromises' in concurrently-executing code
88 | )
89 | case .failure(let error):
90 | activePromises.forEach { $0.promise.reject(with: error) }
| `- warning: reference to captured var 'activePromises' in concurrently-executing code
91 | seal.reject(with: error, on: dispatchQueue)
92 | }
[34/95] Emitting module PovioKitPromise
[35/95] Compiling PovioKitPromise Sequence.swift
[38/96] Compiling Alamofire DataRequest.swift
[39/96] Compiling Alamofire DataStreamRequest.swift
[40/96] Compiling Alamofire DownloadRequest.swift
[41/96] Emitting module Alamofire
[42/96] Compiling Alamofire SessionDelegate.swift
[43/96] Compiling Alamofire URLConvertible+URLRequestConvertible.swift
[44/96] Compiling Alamofire UploadRequest.swift
[45/96] Compiling Alamofire WebSocketRequest.swift
[46/96] Compiling Alamofire HTTPHeaders.swift
[47/96] Compiling Alamofire HTTPMethod.swift
[48/96] Compiling Alamofire Notifications.swift
[49/96] Compiling Alamofire ParameterEncoder.swift
[50/96] Compiling Alamofire ParameterEncoding.swift
[51/96] Compiling Alamofire Protected.swift
[52/96] Compiling Alamofire Request.swift
[53/96] Compiling Alamofire RequestTaskMap.swift
[54/96] Compiling Alamofire Response.swift
[55/96] Compiling Alamofire Session.swift
[56/96] Compiling PovioKitCore UIDevice+PovioKit.swift
[57/96] Compiling PovioKitCore UIEdgeInsets+PovioKit.swift
[58/96] Compiling PovioKitCore UIImage+Kingfisher.swift
[59/96] Compiling PovioKitCore UIImage+PovioKit.swift
[60/96] Compiling Alamofire CachedResponseHandler.swift
[61/96] Compiling Alamofire Combine.swift
[62/96] Compiling Alamofire Concurrency.swift
[63/96] Compiling Alamofire EventMonitor.swift
[64/96] Compiling PovioKitPromise Wrap.swift
[77/99] Compiling Alamofire ServerTrustEvaluation.swift
[78/99] Compiling Alamofire URLEncodedFormEncoder.swift
[79/99] Compiling Alamofire Validation.swift
[80/99] Compiling Alamofire resource_bundle_accessor.swift
[84/99] Emitting module PovioKitCore
/Users/admin/builder/spi-builder-workspace/Sources/Core/Logger/Logger.swift:13:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import OSLog
10 |
11 | public final class Logger {
| `- note: class 'Logger' does not conform to the 'Sendable' protocol
12 | public typealias Parameters = [String: Any]
13 | public static let shared = Logger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | public var logLevel: LogLevel = .none
15 |
[88/106] Compiling PovioKitCore UIResponder+PovioKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/Core/Logger/Logger.swift:13:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import OSLog
10 |
11 | public final class Logger {
| `- note: class 'Logger' does not conform to the 'Sendable' protocol
12 | public typealias Parameters = [String: Any]
13 | public static let shared = Logger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | public var logLevel: LogLevel = .none
15 |
[89/106] Compiling PovioKitCore UIWindow+PovioKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/Core/Logger/Logger.swift:13:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import OSLog
10 |
11 | public final class Logger {
| `- note: class 'Logger' does not conform to the 'Sendable' protocol
12 | public typealias Parameters = [String: Any]
13 | public static let shared = Logger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | public var logLevel: LogLevel = .none
15 |
[90/106] Compiling PovioKitCore Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Core/Logger/Logger.swift:13:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import OSLog
10 |
11 | public final class Logger {
| `- note: class 'Logger' does not conform to the 'Sendable' protocol
12 | public typealias Parameters = [String: Any]
13 | public static let shared = Logger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | public var logLevel: LogLevel = .none
15 |
[97/106] Compiling PovioKitNetworking OAuthCredentials.swift
[98/106] Compiling PovioKitNetworking DomainConvertible.swift
[99/106] Compiling PovioKitNetworking ParameterEncoder+PovioKit.swift
[100/106] Compiling PovioKitNetworking URLEncodedFormParameterEncoder+PovioKit.swift
[101/106] Emitting module PovioKitNetworking
/Users/admin/builder/spi-builder-workspace/Sources/Networking/AlamofireNetworkClient/AlamofireNetworkClient.swift:221:10: warning: associated value 'request' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
219 | public extension AlamofireNetworkClient {
220 | enum Error: LocalizedError {
221 | case request(RequestError, ErrorInfo)
| `- warning: associated value 'request' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
222 | case other(Swift.Error, ErrorInfo)
223 |
:
273 | }
274 |
275 | struct ErrorInfo: CustomStringConvertible {
| `- note: consider making struct 'ErrorInfo' conform to the 'Sendable' protocol
276 | public var method: HTTPMethod?
277 | public var endpoint: URLConvertible?
/Users/admin/builder/spi-builder-workspace/Sources/Networking/AlamofireNetworkClient/AlamofireNetworkClient.swift:222:10: warning: associated value 'other' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
220 | enum Error: LocalizedError {
221 | case request(RequestError, ErrorInfo)
222 | case other(Swift.Error, ErrorInfo)
| `- warning: associated value 'other' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
223 |
224 | public var errorDescription: String? {
:
273 | }
274 |
275 | struct ErrorInfo: CustomStringConvertible {
| `- note: consider making struct 'ErrorInfo' conform to the 'Sendable' protocol
276 | public var method: HTTPMethod?
277 | public var endpoint: URLConvertible?
[102/106] Compiling PovioKitNetworking AlamofireNetworkClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/Networking/AlamofireNetworkClient/AlamofireNetworkClient.swift:221:10: warning: associated value 'request' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
219 | public extension AlamofireNetworkClient {
220 | enum Error: LocalizedError {
221 | case request(RequestError, ErrorInfo)
| `- warning: associated value 'request' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
222 | case other(Swift.Error, ErrorInfo)
223 |
:
273 | }
274 |
275 | struct ErrorInfo: CustomStringConvertible {
| `- note: consider making struct 'ErrorInfo' conform to the 'Sendable' protocol
276 | public var method: HTTPMethod?
277 | public var endpoint: URLConvertible?
/Users/admin/builder/spi-builder-workspace/Sources/Networking/AlamofireNetworkClient/AlamofireNetworkClient.swift:222:10: warning: associated value 'other' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
220 | enum Error: LocalizedError {
221 | case request(RequestError, ErrorInfo)
222 | case other(Swift.Error, ErrorInfo)
| `- warning: associated value 'other' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AlamofireNetworkClient.Error.ErrorInfo'; this is an error in the Swift 6 language mode
223 |
224 | public var errorDescription: String? {
:
273 | }
274 |
275 | struct ErrorInfo: CustomStringConvertible {
| `- note: consider making struct 'ErrorInfo' conform to the 'Sendable' protocol
276 | public var method: HTTPMethod?
277 | public var endpoint: URLConvertible?
[103/106] Compiling PovioKitNetworking AlamofireConsoleLogger.swift
[107/154] Compiling PovioKitSwiftUI ScrollViewWithOffset.swift
/Users/admin/builder/spi-builder-workspace/Sources/UI/SwiftUI/Views/ScrollViewWithOffset/ScrollViewWithOffset.swift:85:14: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 |
84 | private struct ScrollOffsetPreferenceKey: PreferenceKey {
85 | static var defaultValue: CGPoint = .zero
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | static func reduce(value: inout CGPoint, nextValue: () -> CGPoint) { /* no impl */ }
87 | }
[108/154] Compiling PovioKitSwiftUI RemoteImage.swift
[109/155] Compiling PovioKitUtilities MediaPlayer.swift
[110/155] Compiling PovioKitUtilities MediaStream.swift
[111/155] Compiling PovioKitUtilities Camera+PovioKit.swift
[112/155] Compiling PovioKitUtilities Camera.swift
[113/155] Compiling PovioKitUtilities AudioPlayer.swift
[114/155] Compiling PovioKitUtilities MediaPlayer+Models.swift
[115/155] Compiling PovioKitUtilities InAppPurchaseError.swift
[116/155] Compiling PovioKitUtilities InAppPurchaseService.swift
[117/155] Emitting module PovioKitSwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/UI/SwiftUI/Views/ScrollViewWithOffset/ScrollViewWithOffset.swift:85:14: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 |
84 | private struct ScrollOffsetPreferenceKey: PreferenceKey {
85 | static var defaultValue: CGPoint = .zero
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | static func reduce(value: inout CGPoint, nextValue: () -> CGPoint) { /* no impl */ }
87 | }
[118/155] Compiling PovioKitUtilities UILabel+BuilderCompatible.swift
[119/155] Compiling PovioKitUtilities UITextField+BuilderCompatible.swift
[120/155] Compiling PovioKitUtilities Broadcast.swift
[121/155] Compiling PovioKitUtilities BundleReader.swift
[122/155] Compiling PovioKitUtilities AppVersionValidator.swift
[123/155] Compiling PovioKitUtilities AttributedStringBuilder.swift
[124/155] Compiling PovioKitSwiftUI SimpleColorPicker.swift
[125/155] Compiling PovioKitUtilities Delegated.swift
[126/155] Compiling PovioKitUtilities DispatchTimer.swift
[127/155] Compiling PovioKitUtilities Exif.swift
[128/155] Compiling PovioKitUtilities Money.swift
[129/155] Compiling PovioKitUtilities UserDefault.swift
[130/155] Compiling PovioKitUtilities XCConfigValue.swift
[131/158] Compiling PovioKitUtilities Money+Currency.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Money/Money+Defaults.swift:20:12: warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | // NOTE: - Not thread safe! Previous instances won't be affected.
20 | public var defaults = Money.Defaults()
| |- warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
[132/158] Compiling PovioKitUtilities Money+Defaults.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Money/Money+Defaults.swift:20:12: warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | // NOTE: - Not thread safe! Previous instances won't be affected.
20 | public var defaults = Money.Defaults()
| |- warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
[133/158] Compiling PovioKitUtilities Money+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Money/Money+Defaults.swift:20:12: warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | // NOTE: - Not thread safe! Previous instances won't be affected.
20 | public var defaults = Money.Defaults()
| |- warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
[134/158] Compiling PovioKitUtilities StartupProcess.swift
[135/158] Compiling PovioKitUtilities StartupProcessService.swift
[136/158] Compiling PovioKitUtilities Throttler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/InAppPurchase/InAppPurchaseService.swift:151:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
149 | private extension InAppPurchaseService {
150 | func listenForTransactions() -> Task<Void, Error> {
151 | return Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
152 | for await result in Transaction.updates {
153 | do {
154 | let transaction = try self.checkVerified(result)
| `- note: closure captures 'self' which is accessible to code in the current task
155 | await self.updatePurchasedProducts()
156 | await transaction.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/InAppPurchase/InAppPurchaseService.swift:30:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
28 | updateListenerTask = listenForTransactions()
29 |
30 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
31 | await requestProducts()
| `- note: closure captures 'self' which is accessible to code in the current task
32 | await updatePurchasedProducts()
33 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/InAppPurchase/InAppPurchaseService.swift:151:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
149 | private extension InAppPurchaseService {
150 | func listenForTransactions() -> Task<Void, Error> {
151 | return Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
152 | for await result in Transaction.updates {
153 | do {
154 | let transaction = try self.checkVerified(result)
| `- note: closure captures 'self' which is accessible to code in the current task
155 | await self.updatePurchasedProducts()
156 | await transaction.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/InAppPurchase/InAppPurchaseService.swift:30:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
28 | updateListenerTask = listenForTransactions()
29 |
30 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
31 | await requestProducts()
| `- note: closure captures 'self' which is accessible to code in the current task
32 | await updatePurchasedProducts()
33 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/InAppPurchase/InAppPurchaseService.swift:151:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
149 | private extension InAppPurchaseService {
150 | func listenForTransactions() -> Task<Void, Error> {
151 | return Task.detached {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
152 | for await result in Transaction.updates {
153 | do {
154 | let transaction = try self.checkVerified(result)
| `- note: closure captures 'self' which is accessible to code in the current task
155 | await self.updatePurchasedProducts()
156 | await transaction.finish()
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/InAppPurchase/InAppPurchaseService.swift:30:10: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
28 | updateListenerTask = listenForTransactions()
29 |
30 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
31 | await requestProducts()
| `- note: closure captures 'self' which is accessible to code in the current task
32 | await updatePurchasedProducts()
33 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:97:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
95 | override public init() {
96 | super.init()
97 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
98 | }
99 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:102:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
100 | public override init(url: URL) {
101 | super.init(playerItem: AVPlayerItem(url: url))
102 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:107:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
105 | public override init(playerItem item: AVPlayerItem?) {
106 | super.init(playerItem: item)
107 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
108 | }
109 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:218:5: warning: main actor-isolated property 'playbackInterval' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
38 |
39 | public class MediaPlayer: AVPlayer {
40 | public private(set) lazy var playbackInterval: (startAt: Double, endAt: Double) = (0, duration)
| `- note: mutation of this property is only permitted within the actor
41 |
42 | /// A Boolean value that determines whether the media player should loop playback when it reaches the end of the media.
:
216 | public override func replaceCurrentItem(with item: AVPlayerItem?) {
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
| `- warning: main actor-isolated property 'playbackInterval' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
219 | setupPlayerItemObserver()
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:218:28: warning: main actor-isolated property 'duration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 |
62 | /// The total duration of the current media item in seconds. This duration does not take into account any custom playback interval set.
63 | public var duration: Double {
| `- note: property declared here
64 | guard let duration = currentItem?.asset.duration, duration.isValid, !duration.seconds.isNaN else { return 0 }
65 | return duration.seconds
:
216 | public override func replaceCurrentItem(with item: AVPlayerItem?) {
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
| `- warning: main actor-isolated property 'duration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
219 | setupPlayerItemObserver()
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:219:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
219 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 | }
221 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:263:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
261 | switch playerItem.status {
262 | case .readyToPlay:
263 | canPlayVideo = true
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:264:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
262 | case .readyToPlay:
263 | canPlayVideo = true
264 | state = .readyToPlay
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:265:9: warning: call to main actor-isolated instance method 'setupPeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
263 | canPlayVideo = true
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
| `- warning: call to main actor-isolated instance method 'setupPeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
266 | if playWhenReady {
267 | play()
:
280 | }
281 |
282 | func setupPeriodicTimeObserver() {
| |- note: calls to instance method 'setupPeriodicTimeObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
283 | guard periodicTimeObserver == nil else { return }
284 | periodicTimeObserver = addPeriodicTimeObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:266:12: warning: main actor-isolated property 'playWhenReady' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
89 | private var canPlayVideo: Bool = false
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
| `- note: property declared here
92 | private var playerItemObserver: NSKeyValueObservation?
93 | private var periodicTimeObserver: Any?
:
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
| `- warning: main actor-isolated property 'playWhenReady' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
267 | play()
268 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:267:11: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 | /// Starts playing the media from the current position.
118 | /// This function also updates the state of the media player to `.playing` and informs the delegate that the playback has started.
119 | public override func play() {
| |- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
120 | guard canPlayVideo else {
121 | setupPlayerItemObserver()
:
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
267 | play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
268 | }
269 | case .unknown:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:270:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
268 | }
269 | case .unknown:
270 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
271 | state = .failed(error: Error.undefinedState)
272 | case .failed:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:271:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
269 | case .unknown:
270 | canPlayVideo = false
271 | state = .failed(error: Error.undefinedState)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
272 | case .failed:
273 | canPlayVideo = false
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:273:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
271 | state = .failed(error: Error.undefinedState)
272 | case .failed:
273 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
275 | @unknown default:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:274:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
272 | case .failed:
273 | canPlayVideo = false
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
275 | @unknown default:
276 | canPlayVideo = false
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:276:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
275 | @unknown default:
276 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
277 | state = .failed(error: Error.undefinedState)
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:277:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
275 | @unknown default:
276 | canPlayVideo = false
277 | state = .failed(error: Error.undefinedState)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
278 | }
279 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:291:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
289 |
290 | if currentItem?.status == .failed, let error = currentItem?.error {
291 | state = .failed(error: error)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
292 | removePeriodicTimeObserver()
293 | return
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:292:9: warning: call to main actor-isolated instance method 'removePeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
290 | if currentItem?.status == .failed, let error = currentItem?.error {
291 | state = .failed(error: error)
292 | removePeriodicTimeObserver()
| `- warning: call to main actor-isolated instance method 'removePeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
293 | return
294 | }
:
321 | }
322 |
323 | func removePeriodicTimeObserver() {
| |- note: calls to instance method 'removePeriodicTimeObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
324 | periodicTimeObserver.map(removeTimeObserver)
325 | periodicTimeObserver = nil
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:296:7: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
294 | }
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
298 | timeObserverCallback(time: time)
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:297:7: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
298 | timeObserverCallback(time: time)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:297:74: warning: main actor-isolated property 'duration' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
61 |
62 | /// The total duration of the current media item in seconds. This duration does not take into account any custom playback interval set.
63 | public var duration: Double {
| `- note: property declared here
64 | guard let duration = currentItem?.asset.duration, duration.isValid, !duration.seconds.isNaN else { return 0 }
65 | return duration.seconds
:
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
| `- warning: main actor-isolated property 'duration' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
298 | timeObserverCallback(time: time)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:298:7: warning: call to main actor-isolated instance method 'timeObserverCallback(time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
298 | timeObserverCallback(time: time)
| `- warning: call to main actor-isolated instance method 'timeObserverCallback(time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
299 |
300 | guard let currentItem = self.currentItem, currentItem.status == .readyToPlay else { return }
:
305 | }
306 |
307 | func timeObserverCallback(time: CMTime) {
| |- note: calls to instance method 'timeObserverCallback(time:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
308 | guard (time.seconds + Double(timeObservingMiliseconds) / 1_000) >= playbackInterval.endAt else { return }
309 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:302:9: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
300 | guard let currentItem = self.currentItem, currentItem.status == .readyToPlay else { return }
301 | currentItem.isPlaybackLikelyToKeepUp
302 | ? delegate?.mediaPlayer(didEndBuffering: self)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
303 | : delegate?.mediaPlayer(didBeginBuffering: self)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:303:9: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
301 | currentItem.isPlaybackLikelyToKeepUp
302 | ? delegate?.mediaPlayer(didEndBuffering: self)
303 | : delegate?.mediaPlayer(didBeginBuffering: self)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
304 | }
305 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:97:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
95 | override public init() {
96 | super.init()
97 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
98 | }
99 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:102:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
100 | public override init(url: URL) {
101 | super.init(playerItem: AVPlayerItem(url: url))
102 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:107:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
105 | public override init(playerItem item: AVPlayerItem?) {
106 | super.init(playerItem: item)
107 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
108 | }
109 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:218:5: warning: main actor-isolated property 'playbackInterval' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
38 |
39 | public class MediaPlayer: AVPlayer {
40 | public private(set) lazy var playbackInterval: (startAt: Double, endAt: Double) = (0, duration)
| `- note: mutation of this property is only permitted within the actor
41 |
42 | /// A Boolean value that determines whether the media player should loop playback when it reaches the end of the media.
:
216 | public override func replaceCurrentItem(with item: AVPlayerItem?) {
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
| `- warning: main actor-isolated property 'playbackInterval' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
219 | setupPlayerItemObserver()
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:218:28: warning: main actor-isolated property 'duration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 |
62 | /// The total duration of the current media item in seconds. This duration does not take into account any custom playback interval set.
63 | public var duration: Double {
| `- note: property declared here
64 | guard let duration = currentItem?.asset.duration, duration.isValid, !duration.seconds.isNaN else { return 0 }
65 | return duration.seconds
:
216 | public override func replaceCurrentItem(with item: AVPlayerItem?) {
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
| `- warning: main actor-isolated property 'duration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
219 | setupPlayerItemObserver()
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:219:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
219 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 | }
221 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:263:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
261 | switch playerItem.status {
262 | case .readyToPlay:
263 | canPlayVideo = true
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:264:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
262 | case .readyToPlay:
263 | canPlayVideo = true
264 | state = .readyToPlay
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:265:9: warning: call to main actor-isolated instance method 'setupPeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
263 | canPlayVideo = true
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
| `- warning: call to main actor-isolated instance method 'setupPeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
266 | if playWhenReady {
267 | play()
:
280 | }
281 |
282 | func setupPeriodicTimeObserver() {
| |- note: calls to instance method 'setupPeriodicTimeObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
283 | guard periodicTimeObserver == nil else { return }
284 | periodicTimeObserver = addPeriodicTimeObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:266:12: warning: main actor-isolated property 'playWhenReady' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
89 | private var canPlayVideo: Bool = false
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
| `- note: property declared here
92 | private var playerItemObserver: NSKeyValueObservation?
93 | private var periodicTimeObserver: Any?
:
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
| `- warning: main actor-isolated property 'playWhenReady' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
267 | play()
268 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:267:11: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 | /// Starts playing the media from the current position.
118 | /// This function also updates the state of the media player to `.playing` and informs the delegate that the playback has started.
119 | public override func play() {
| |- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
120 | guard canPlayVideo else {
121 | setupPlayerItemObserver()
:
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
267 | play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
268 | }
269 | case .unknown:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:270:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
268 | }
269 | case .unknown:
270 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
271 | state = .failed(error: Error.undefinedState)
272 | case .failed:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:271:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
269 | case .unknown:
270 | canPlayVideo = false
271 | state = .failed(error: Error.undefinedState)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
272 | case .failed:
273 | canPlayVideo = false
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:273:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
271 | state = .failed(error: Error.undefinedState)
272 | case .failed:
273 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
275 | @unknown default:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:274:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
272 | case .failed:
273 | canPlayVideo = false
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
275 | @unknown default:
276 | canPlayVideo = false
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:276:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
275 | @unknown default:
276 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
277 | state = .failed(error: Error.undefinedState)
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:277:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
275 | @unknown default:
276 | canPlayVideo = false
277 | state = .failed(error: Error.undefinedState)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
278 | }
279 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:291:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
289 |
290 | if currentItem?.status == .failed, let error = currentItem?.error {
291 | state = .failed(error: error)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
292 | removePeriodicTimeObserver()
293 | return
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:292:9: warning: call to main actor-isolated instance method 'removePeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
290 | if currentItem?.status == .failed, let error = currentItem?.error {
291 | state = .failed(error: error)
292 | removePeriodicTimeObserver()
| `- warning: call to main actor-isolated instance method 'removePeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
293 | return
294 | }
:
321 | }
322 |
323 | func removePeriodicTimeObserver() {
| |- note: calls to instance method 'removePeriodicTimeObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
324 | periodicTimeObserver.map(removeTimeObserver)
325 | periodicTimeObserver = nil
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:296:7: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
294 | }
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
298 | timeObserverCallback(time: time)
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:297:7: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
298 | timeObserverCallback(time: time)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:297:74: warning: main actor-isolated property 'duration' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
61 |
62 | /// The total duration of the current media item in seconds. This duration does not take into account any custom playback interval set.
63 | public var duration: Double {
| `- note: property declared here
64 | guard let duration = currentItem?.asset.duration, duration.isValid, !duration.seconds.isNaN else { return 0 }
65 | return duration.seconds
:
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
| `- warning: main actor-isolated property 'duration' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
298 | timeObserverCallback(time: time)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:298:7: warning: call to main actor-isolated instance method 'timeObserverCallback(time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
298 | timeObserverCallback(time: time)
| `- warning: call to main actor-isolated instance method 'timeObserverCallback(time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
299 |
300 | guard let currentItem = self.currentItem, currentItem.status == .readyToPlay else { return }
:
305 | }
306 |
307 | func timeObserverCallback(time: CMTime) {
| |- note: calls to instance method 'timeObserverCallback(time:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
308 | guard (time.seconds + Double(timeObservingMiliseconds) / 1_000) >= playbackInterval.endAt else { return }
309 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:302:9: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
300 | guard let currentItem = self.currentItem, currentItem.status == .readyToPlay else { return }
301 | currentItem.isPlaybackLikelyToKeepUp
302 | ? delegate?.mediaPlayer(didEndBuffering: self)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
303 | : delegate?.mediaPlayer(didBeginBuffering: self)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:303:9: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
301 | currentItem.isPlaybackLikelyToKeepUp
302 | ? delegate?.mediaPlayer(didEndBuffering: self)
303 | : delegate?.mediaPlayer(didBeginBuffering: self)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
304 | }
305 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:97:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
95 | override public init() {
96 | super.init()
97 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
98 | }
99 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:102:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
100 | public override init(url: URL) {
101 | super.init(playerItem: AVPlayerItem(url: url))
102 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:107:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
105 | public override init(playerItem item: AVPlayerItem?) {
106 | super.init(playerItem: item)
107 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
108 | }
109 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:218:5: warning: main actor-isolated property 'playbackInterval' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
38 |
39 | public class MediaPlayer: AVPlayer {
40 | public private(set) lazy var playbackInterval: (startAt: Double, endAt: Double) = (0, duration)
| `- note: mutation of this property is only permitted within the actor
41 |
42 | /// A Boolean value that determines whether the media player should loop playback when it reaches the end of the media.
:
216 | public override func replaceCurrentItem(with item: AVPlayerItem?) {
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
| `- warning: main actor-isolated property 'playbackInterval' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
219 | setupPlayerItemObserver()
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:218:28: warning: main actor-isolated property 'duration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 |
62 | /// The total duration of the current media item in seconds. This duration does not take into account any custom playback interval set.
63 | public var duration: Double {
| `- note: property declared here
64 | guard let duration = currentItem?.asset.duration, duration.isValid, !duration.seconds.isNaN else { return 0 }
65 | return duration.seconds
:
216 | public override func replaceCurrentItem(with item: AVPlayerItem?) {
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
| `- warning: main actor-isolated property 'duration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
219 | setupPlayerItemObserver()
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:219:5: warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
217 | super.replaceCurrentItem(with: item)
218 | playbackInterval = (0, duration)
219 | setupPlayerItemObserver()
| `- warning: call to main actor-isolated instance method 'setupPlayerItemObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
220 | }
221 |
:
243 | // MARK: - Private Methods
244 | private extension MediaPlayer {
245 | func setupPlayerItemObserver() {
| |- note: calls to instance method 'setupPlayerItemObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
246 | // notification when playback ends
247 | NotificationCenter.default.addObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:263:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
261 | switch playerItem.status {
262 | case .readyToPlay:
263 | canPlayVideo = true
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:264:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
262 | case .readyToPlay:
263 | canPlayVideo = true
264 | state = .readyToPlay
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:265:9: warning: call to main actor-isolated instance method 'setupPeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
263 | canPlayVideo = true
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
| `- warning: call to main actor-isolated instance method 'setupPeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
266 | if playWhenReady {
267 | play()
:
280 | }
281 |
282 | func setupPeriodicTimeObserver() {
| |- note: calls to instance method 'setupPeriodicTimeObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
283 | guard periodicTimeObserver == nil else { return }
284 | periodicTimeObserver = addPeriodicTimeObserver(
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:266:12: warning: main actor-isolated property 'playWhenReady' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
89 | private var canPlayVideo: Bool = false
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
| `- note: property declared here
92 | private var playerItemObserver: NSKeyValueObservation?
93 | private var periodicTimeObserver: Any?
:
264 | state = .readyToPlay
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
| `- warning: main actor-isolated property 'playWhenReady' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
267 | play()
268 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:267:11: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
117 | /// Starts playing the media from the current position.
118 | /// This function also updates the state of the media player to `.playing` and informs the delegate that the playback has started.
119 | public override func play() {
| |- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
120 | guard canPlayVideo else {
121 | setupPlayerItemObserver()
:
265 | setupPeriodicTimeObserver()
266 | if playWhenReady {
267 | play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
268 | }
269 | case .unknown:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:270:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
268 | }
269 | case .unknown:
270 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
271 | state = .failed(error: Error.undefinedState)
272 | case .failed:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:271:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
269 | case .unknown:
270 | canPlayVideo = false
271 | state = .failed(error: Error.undefinedState)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
272 | case .failed:
273 | canPlayVideo = false
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:273:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
271 | state = .failed(error: Error.undefinedState)
272 | case .failed:
273 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
275 | @unknown default:
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:274:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
272 | case .failed:
273 | canPlayVideo = false
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
275 | @unknown default:
276 | canPlayVideo = false
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:276:9: warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
89 | private var canPlayVideo: Bool = false
| `- note: mutation of this property is only permitted within the actor
90 | /// Flipped to `true` when trying to start playing but `canPlayVideo` is false
91 | private var playWhenReady: Bool = false
:
274 | state = .failed(error: playerItem.error ?? Error.undefinedError)
275 | @unknown default:
276 | canPlayVideo = false
| `- warning: main actor-isolated property 'canPlayVideo' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
277 | state = .failed(error: Error.undefinedState)
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:277:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
275 | @unknown default:
276 | canPlayVideo = false
277 | state = .failed(error: Error.undefinedState)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
278 | }
279 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:291:9: warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
80 | /// This property is of type `MediaPlayerPlaybackState` and its default value is `.undefined`.
81 | /// When the state changes, the media player informs its delegate by calling the `mediaPlayer(_:didUpdatePlaybackState:)` method.
82 | public var state: PlaybackState = .preparing {
| `- note: mutation of this property is only permitted within the actor
83 | didSet { onStateUpdate() }
84 | }
:
289 |
290 | if currentItem?.status == .failed, let error = currentItem?.error {
291 | state = .failed(error: error)
| `- warning: main actor-isolated property 'state' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
292 | removePeriodicTimeObserver()
293 | return
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:292:9: warning: call to main actor-isolated instance method 'removePeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
290 | if currentItem?.status == .failed, let error = currentItem?.error {
291 | state = .failed(error: error)
292 | removePeriodicTimeObserver()
| `- warning: call to main actor-isolated instance method 'removePeriodicTimeObserver()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
293 | return
294 | }
:
321 | }
322 |
323 | func removePeriodicTimeObserver() {
| |- note: calls to instance method 'removePeriodicTimeObserver()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
324 | periodicTimeObserver.map(removeTimeObserver)
325 | periodicTimeObserver = nil
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:296:7: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
294 | }
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
298 | timeObserverCallback(time: time)
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:297:7: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
298 | timeObserverCallback(time: time)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:297:74: warning: main actor-isolated property 'duration' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
61 |
62 | /// The total duration of the current media item in seconds. This duration does not take into account any custom playback interval set.
63 | public var duration: Double {
| `- note: property declared here
64 | guard let duration = currentItem?.asset.duration, duration.isValid, !duration.seconds.isNaN else { return 0 }
65 | return duration.seconds
:
295 |
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
| `- warning: main actor-isolated property 'duration' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
298 | timeObserverCallback(time: time)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:298:7: warning: call to main actor-isolated instance method 'timeObserverCallback(time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
296 | delegate?.mediaPlayer(self, didProgressToTime: time.seconds)
297 | delegate?.mediaPlayer(self, onProgressUpdate: Float(time.seconds / duration))
298 | timeObserverCallback(time: time)
| `- warning: call to main actor-isolated instance method 'timeObserverCallback(time:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
299 |
300 | guard let currentItem = self.currentItem, currentItem.status == .readyToPlay else { return }
:
305 | }
306 |
307 | func timeObserverCallback(time: CMTime) {
| |- note: calls to instance method 'timeObserverCallback(time:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'AVPlayer'
308 | guard (time.seconds + Double(timeObservingMiliseconds) / 1_000) >= playbackInterval.endAt else { return }
309 |
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:302:9: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
300 | guard let currentItem = self.currentItem, currentItem.status == .readyToPlay else { return }
301 | currentItem.isPlaybackLikelyToKeepUp
302 | ? delegate?.mediaPlayer(didEndBuffering: self)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
303 | : delegate?.mediaPlayer(didBeginBuffering: self)
304 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/MediaPlayer/MediaPlayer.swift:303:9: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
84 | }
85 |
86 | public weak var delegate: MediaPlayerDelegate?
| `- note: property declared here
87 |
88 | /// Boolean flag `true` when item is prepared and can be played
:
301 | currentItem.isPlaybackLikelyToKeepUp
302 | ? delegate?.mediaPlayer(didEndBuffering: self)
303 | : delegate?.mediaPlayer(didBeginBuffering: self)
| `- warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
304 | }
305 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:7: warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public final class Broadcast<T> {
| `- note: generic class 'Broadcast' does not conform to the 'Sendable' protocol
12 | private(set) var observers = [Weak]()
13 |
:
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| `- warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:31: warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| |- warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Camera/Camera.swift:67:14: warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
9 | import AVFoundation
10 |
11 | public class Camera: NSObject {
| `- note: class 'Camera' does not conform to the 'Sendable' protocol
12 | var device: AVCaptureDevice? {
13 | switch cameraPosition {
:
65 | func startSession() {
66 | sessionQueue.async {
67 | guard !self.session.isRunning else { return }
| `- warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
68 | self.session.startRunning()
69 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:7: warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public final class Broadcast<T> {
| `- note: generic class 'Broadcast' does not conform to the 'Sendable' protocol
12 | private(set) var observers = [Weak]()
13 |
:
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| `- warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:31: warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| |- warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Camera/Camera.swift:67:14: warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
9 | import AVFoundation
10 |
11 | public class Camera: NSObject {
| `- note: class 'Camera' does not conform to the 'Sendable' protocol
12 | var device: AVCaptureDevice? {
13 | switch cameraPosition {
:
65 | func startSession() {
66 | sessionQueue.async {
67 | guard !self.session.isRunning else { return }
| `- warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
68 | self.session.startRunning()
69 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:7: warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public final class Broadcast<T> {
| `- note: generic class 'Broadcast' does not conform to the 'Sendable' protocol
12 | private(set) var observers = [Weak]()
13 |
:
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| `- warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:31: warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| |- warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Camera/Camera.swift:67:14: warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
9 | import AVFoundation
10 |
11 | public class Camera: NSObject {
| `- note: class 'Camera' does not conform to the 'Sendable' protocol
12 | var device: AVCaptureDevice? {
13 | switch cameraPosition {
:
65 | func startSession() {
66 | sessionQueue.async {
67 | guard !self.session.isRunning else { return }
| `- warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
68 | self.session.startRunning()
69 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:7: warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public final class Broadcast<T> {
| `- note: generic class 'Broadcast' does not conform to the 'Sendable' protocol
12 | private(set) var observers = [Weak]()
13 |
:
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| `- warning: capture of 'self' with non-sendable type 'Broadcast<T>' in a '@Sendable' closure
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Broadcast/Broadcast.swift:47:31: warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
45 | ) {
46 | queue.async {
47 | self.invoke(invocation: invocation)
| |- warning: capture of 'invocation' with non-sendable type '(T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
48 | }
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Camera/Camera.swift:67:14: warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
9 | import AVFoundation
10 |
11 | public class Camera: NSObject {
| `- note: class 'Camera' does not conform to the 'Sendable' protocol
12 | var device: AVCaptureDevice? {
13 | switch cameraPosition {
:
65 | func startSession() {
66 | sessionQueue.async {
67 | guard !self.session.isRunning else { return }
| `- warning: capture of 'self' with non-sendable type 'Camera' in a '@Sendable' closure
68 | self.session.startRunning()
69 | }
[151/158] Emitting module PovioKitUtilities
/Users/admin/builder/spi-builder-workspace/Sources/Utilities/Money/Money+Defaults.swift:20:12: warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | // NOTE: - Not thread safe! Previous instances won't be affected.
20 | public var defaults = Money.Defaults()
| |- warning: var 'defaults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'defaults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
[152/158] Compiling PovioKitUtilities CameraService.swift
[153/158] Compiling PovioKitUtilities PhotoCamera.swift
[154/158] Compiling PovioKitUtilities QRCodeScanner.swift
[155/158] Compiling PovioKitUtilities ColorInterpolator.swift
[156/158] Compiling PovioKitUtilities ExifError.swift
[157/158] Compiling PovioKitUtilities ExifImageSource.swift
[158/158] Compiling PovioKitUtilities ImageSource.swift
[159/170] Compiling PovioKitUIKit PaddingLabel.swift
[160/170] Compiling PovioKitUIKit GradientView.swift
[161/170] Compiling PovioKitUIKit UIViewController+PovioKit.swift
[162/170] Compiling PovioKitUIKit UITableViewCell+PovioKit.swift
[163/170] Compiling PovioKitUIKit UITableView+PovioKit.swift
[164/170] Compiling PovioKitUIKit UIView+PovioKit.swift
[165/170] Compiling PovioKitUIKit UICollectionView+PovioKit.swift
[166/170] Compiling PovioKitUIKit UIProgressView+PovioKit.swift
[167/170] Compiling PovioKitUIKit UITableViewHeaderFooterView+PovioKit.swift
[168/170] Compiling PovioKitUIKit DynamicCollectionCell.swift
[169/170] Compiling PovioKitUIKit UICollectionReusableView+PovioKit.swift
[170/170] Emitting module PovioKitUIKit
[171/171] Compiling PovioKitUIKit TextField.swift
Build complete! (14.87s)
Build complete.
{
"dependencies" : [
{
"identity" : "alamofire",
"requirement" : {
"range" : [
{
"lower_bound" : "5.0.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Alamofire/Alamofire"
}
],
"manifest_display_name" : "PovioKit",
"name" : "PovioKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "PovioKitCore",
"targets" : [
"PovioKitCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitUtilities",
"targets" : [
"PovioKitUtilities"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitNetworking",
"targets" : [
"PovioKitNetworking"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitPromise",
"targets" : [
"PovioKitPromise"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitUIKit",
"targets" : [
"PovioKitUIKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitSwiftUI",
"targets" : [
"PovioKitSwiftUI"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PovioKitAsync",
"targets" : [
"PovioKitAsync"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "Tests",
"module_type" : "SwiftTarget",
"name" : "Tests",
"path" : "Tests/Tests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/Tests/Resources/PovioKit.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Core/AppInfoTests.swift",
"Core/Extensions/Foundation/CollectionGroupedTests.swift",
"Core/Extensions/Foundation/CollectionTests.swift",
"Core/Extensions/Foundation/DataTests.swift",
"Core/Extensions/Foundation/DecodableDictionaryTests.swift",
"Core/Extensions/Foundation/DispatchTimeIntervalTests.swift",
"Core/Extensions/Foundation/DoubleTests.swift",
"Core/Extensions/Foundation/EncodableTests.swift",
"Core/Extensions/Foundation/OptionalTests.swift",
"Core/Extensions/Foundation/StringTests.swift",
"Core/Extensions/Foundation/URLTests.swift",
"Core/Extensions/MapKit/MKAnnotationViewTests.swift",
"Core/Extensions/UIKit/UIColorTests.swift",
"Core/Extensions/UIKit/UIDeviceTests.swift",
"Core/Extensions/UIKit/UIEdgeInsetsTests.swift",
"Core/Extensions/UIKit/UIImageTests.swift",
"Core/Extensions/UIKit/UIResponderTests.swift",
"Core/Extensions/UIKit/UIWindowTests.swift",
"Core/Utilities/App Version Validator/AppVersionValidatorTests.swift",
"Core/Utilities/AttributedStringBuilder/AttributedStringBuilderTests.swift",
"Core/Utilities/Broadcast/BroadcastTests.swift",
"Core/Utilities/BundleReader/BundleReaderTests.swift",
"Core/Utilities/DispatchTimer/DispatchTimerTests.swift",
"Core/Utilities/Exif/ExifTests.swift",
"Core/Utilities/Money/MoneyTests.swift",
"Core/Utilities/StartupService/StartupProcessServiceTests.swift",
"Core/Utilities/Throttler/ThrottlerTests.swift",
"Core/Utilities/UserDefaults/UserDefaultTests.swift",
"PromiseKit/EitherTests.swift",
"PromiseKit/PromiseTests.swift",
"UI/UIKit/Extensions/UICollectionReusableViewTests.swift",
"UI/UIKit/Extensions/UITableViewCellTests.swift",
"UI/UIKit/Extensions/UITableViewHeaderFooterViewTests.swift",
"UI/UIKit/Extensions/UIViewControllerTests.swift",
"UI/UIKit/Extensions/UIViewTests.swift",
"Utilities/XCConfigValue/MockBundleReader.swift",
"Utilities/XCConfigValue/XCConfigValueTests.swift"
],
"target_dependencies" : [
"PovioKitCore",
"PovioKitPromise",
"PovioKitNetworking",
"PovioKitUIKit",
"PovioKitSwiftUI",
"PovioKitUtilities",
"PovioKitAsync"
],
"type" : "test"
},
{
"c99name" : "PovioKitUtilities",
"module_type" : "SwiftTarget",
"name" : "PovioKitUtilities",
"path" : "Sources/Utilities",
"product_memberships" : [
"PovioKitUtilities",
"PovioKitUIKit"
],
"sources" : [
"AppVersionValidator/AppVersionValidator.swift",
"AttributedStringBuilder/AttributedStringBuilder.swift",
"AttributedStringBuilder/UILabel+BuilderCompatible.swift",
"AttributedStringBuilder/UITextField+BuilderCompatible.swift",
"Broadcast/Broadcast.swift",
"BundleReader/BundleReader.swift",
"Camera/Camera+PovioKit.swift",
"Camera/Camera.swift",
"Camera/CameraService.swift",
"Camera/PhotoCamera.swift",
"Camera/QRCodeScanner.swift",
"ColorInterpolator/ColorInterpolator.swift",
"Delegated/Delegated.swift",
"DispatchTimer/DispatchTimer.swift",
"Exif/Exif.swift",
"Exif/ExifError.swift",
"Exif/ExifImageSource.swift",
"ImageSource/ImageSource.swift",
"InAppPurchase/InAppPurchaseError.swift",
"InAppPurchase/InAppPurchaseService.swift",
"MediaPlayer/AudioPlayer.swift",
"MediaPlayer/MediaPlayer+Models.swift",
"MediaPlayer/MediaPlayer.swift",
"MediaPlayer/MediaStream.swift",
"Money/Money+Currency.swift",
"Money/Money+Defaults.swift",
"Money/Money+Extensions.swift",
"Money/Money.swift",
"PropertyWrapper/UserDefault.swift",
"PropertyWrapper/XCConfigValue.swift",
"StartupService/StartupProcess.swift",
"StartupService/StartupProcessService.swift",
"Throttler/Throttler.swift"
],
"target_dependencies" : [
"PovioKitCore"
],
"type" : "library"
},
{
"c99name" : "PovioKitUIKit",
"module_type" : "SwiftTarget",
"name" : "PovioKitUIKit",
"path" : "Sources/UI/UIKit",
"product_memberships" : [
"PovioKitUIKit"
],
"sources" : [
"DynamicCollectionCell/DynamicCollectionCell.swift",
"Extensions/UICollectionReusableView+PovioKit.swift",
"Extensions/UICollectionView+PovioKit.swift",
"Extensions/UIProgressView+PovioKit.swift",
"Extensions/UITableView+PovioKit.swift",
"Extensions/UITableViewCell+PovioKit.swift",
"Extensions/UITableViewHeaderFooterView+PovioKit.swift",
"Extensions/UIView+PovioKit.swift",
"Extensions/UIViewController+PovioKit.swift",
"GradientView/GradientView.swift",
"PaddingLabel/PaddingLabel.swift",
"TextField/TextField.swift"
],
"target_dependencies" : [
"PovioKitCore",
"PovioKitUtilities"
],
"type" : "library"
},
{
"c99name" : "PovioKitSwiftUI",
"module_type" : "SwiftTarget",
"name" : "PovioKitSwiftUI",
"path" : "Sources/UI/SwiftUI",
"product_memberships" : [
"PovioKitSwiftUI"
],
"sources" : [
"Extensions/AnyTransition+PovioKit.swift",
"Extensions/Color+PovioKit.swift",
"Extensions/Text+PovioKit.swift",
"View Modifiers/MaterialBlurBackgroundModifier.swift",
"View Modifiers/MeasureSizeModifier.swift",
"View Modifiers/OnFirstAppearModifier.swift",
"View Modifiers/PhotoPickerModifier.swift",
"View Modifiers/PinchToZoomModifier.swift",
"View Modifiers/SquaredModifier.swift",
"View Modifiers/TextFieldLimitModifer.swift",
"Views/AnimatedImage/AnimatedImage.swift",
"Views/LinearProgressStyle/LinearProgressStyle.swift",
"Views/MaterialBlurView/MaterialBlurView.swift",
"Views/PhotoPickerView/PhotoPickerView.swift",
"Views/RemoteImage/RemoteImage.swift",
"Views/ScrollViewWithOffset/ScrollViewWithOffset.swift",
"Views/SimpleColorPicker/SimpleColorPicker.swift"
],
"target_dependencies" : [
"PovioKitCore"
],
"type" : "library"
},
{
"c99name" : "PovioKitPromise",
"module_type" : "SwiftTarget",
"name" : "PovioKitPromise",
"path" : "Sources/PromiseKit",
"product_memberships" : [
"PovioKitNetworking",
"PovioKitPromise"
],
"sources" : [
"After.swift",
"All.swift",
"Any.swift",
"ConcurrentDispatch.swift",
"Either.swift",
"Future.swift",
"Poll.swift",
"Promise.swift",
"Race.swift",
"Sequence.swift",
"Wrap.swift"
],
"type" : "library"
},
{
"c99name" : "PovioKitNetworking",
"module_type" : "SwiftTarget",
"name" : "PovioKitNetworking",
"path" : "Sources/Networking",
"product_dependencies" : [
"Alamofire"
],
"product_memberships" : [
"PovioKitNetworking"
],
"sources" : [
"AlamofireNetworkClient/AlamofireConsoleLogger.swift",
"AlamofireNetworkClient/AlamofireNetworkClient.swift",
"AlamofireNetworkClient/DomainConvertible.swift",
"AlamofireNetworkClient/Extensions/ParameterEncoder+PovioKit.swift",
"AlamofireNetworkClient/Extensions/URLEncodedFormParameterEncoder+PovioKit.swift",
"AlamofireNetworkClient/OAuth/OAuthCredentials.swift"
],
"target_dependencies" : [
"PovioKitPromise"
],
"type" : "library"
},
{
"c99name" : "PovioKitCore",
"module_type" : "SwiftTarget",
"name" : "PovioKitCore",
"path" : "Sources/Core",
"product_memberships" : [
"PovioKitCore",
"PovioKitUtilities",
"PovioKitUIKit",
"PovioKitSwiftUI"
],
"sources" : [
"AppInfo.swift",
"Extensions/AppKit/NSView+PovioKit.swift",
"Extensions/AppKit/NSWindow+PovioKit.swift",
"Extensions/Foundation/Collection+PovioKit.swift",
"Extensions/Foundation/Data+PovioKit.swift",
"Extensions/Foundation/Date+PovioKit.swift",
"Extensions/Foundation/DateFormatter+PovioKit.swift",
"Extensions/Foundation/DecodableDictionary+PovioKit.swift",
"Extensions/Foundation/DispatchTimeInterval+PovioKit.swift",
"Extensions/Foundation/Double+PovioKit.swift",
"Extensions/Foundation/Encodable+PovioKit.swift",
"Extensions/Foundation/Optional+PovioKit.swift",
"Extensions/Foundation/Result+PovioKit.swift",
"Extensions/Foundation/String+PovioKit.swift",
"Extensions/Foundation/URL+PovioKit.swift",
"Extensions/MapKit/MKAnnotationView+PovioKit.swift",
"Extensions/MapKit/MKCircle+PovioKit.swift",
"Extensions/MapKit/MKMapView+PovioKit.swift",
"Extensions/MapKit/MKPolygon+PovioKit.swift",
"Extensions/Other/SKStoreReviewController+PovioKit.swift",
"Extensions/SwiftUI/View+PovioKit.swift",
"Extensions/UIKit/CGSize+PovioKit.swift",
"Extensions/UIKit/UIColor+PovioKit.swift",
"Extensions/UIKit/UIDevice+PovioKit.swift",
"Extensions/UIKit/UIEdgeInsets+PovioKit.swift",
"Extensions/UIKit/UIImage+Kingfisher.swift",
"Extensions/UIKit/UIImage+PovioKit.swift",
"Extensions/UIKit/UIResponder+PovioKit.swift",
"Extensions/UIKit/UIWindow+PovioKit.swift",
"Logger/Logger.swift"
],
"type" : "library"
},
{
"c99name" : "PovioKitAsync",
"module_type" : "SwiftTarget",
"name" : "PovioKitAsync",
"path" : "Sources/Async",
"product_memberships" : [
"PovioKitAsync"
],
"sources" : [
"AsyncThrottleSequence.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.