Build Information
Successful build of SpendOwl, reference v1.4.2 (4cee1b), with Swift 6.1 for macOS (SPM) on 15 Aug 2026 05:51:12 UTC.
Swift 6 data race errors: 1
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 InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/spendowl/spendowl-ios.git
Reference: v1.4.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/spendowl/spendowl-ios
* tag v1.4.2 -> FETCH_HEAD
HEAD is now at 4cee1bb chore: release 1.4.2 (#17)
Cloned https://github.com/spendowl/spendowl-ios.git
Revision (git rev-parse @):
4cee1bb07ab2e4494ff2a1a82c35394203bd4300
SUCCESS checkout https://github.com/spendowl/spendowl-ios.git at v1.4.2
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/spendowl/spendowl-ios.git
https://github.com/spendowl/spendowl-ios.git
{
"dependencies" : [
],
"manifest_display_name" : "SpendOwl",
"name" : "SpendOwl",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "SpendOwl",
"targets" : [
"SpendOwl"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "SpendOwlTests",
"module_type" : "SwiftTarget",
"name" : "SpendOwlTests",
"path" : "Tests/SpendOwlTests",
"sources" : [
"AttributionTests.swift",
"ConsumableHistoryTests.swift",
"EventQueueTests.swift",
"PurchaseTrackerTests.swift",
"SpendOwlTests.swift"
],
"target_dependencies" : [
"SpendOwl"
],
"type" : "test"
},
{
"c99name" : "SpendOwl",
"module_type" : "SwiftTarget",
"name" : "SpendOwl",
"path" : "Sources/SpendOwl",
"product_memberships" : [
"SpendOwl"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/PrivacyInfo.xcprivacy",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Attribution/AttributionResult.swift",
"Attribution/AttributionService.swift",
"BackgroundTaskAssertion.swift",
"Configuration.swift",
"Logger.swift",
"Network/APIClient.swift",
"Purchases/ConsumableHistory.swift",
"Purchases/PurchaseTracker+Testing.swift",
"Purchases/PurchaseTracker.swift",
"SpendOwl.swift",
"SpendOwlError.swift",
"Storage/AttributionQueue.swift",
"Storage/Defaults.swift",
"Storage/EventQueue.swift",
"Storage/KeychainHelper.swift",
"Version.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
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/3] Write sources
[1/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/20] Compiling SpendOwl KeychainHelper.swift
[5/21] Compiling SpendOwl Defaults.swift
[6/21] Compiling SpendOwl EventQueue.swift
[7/21] Compiling SpendOwl resource_bundle_accessor.swift
[8/21] Compiling SpendOwl Version.swift
[9/21] Compiling SpendOwl SpendOwlError.swift
[10/21] Compiling SpendOwl AttributionQueue.swift
[11/21] Compiling SpendOwl Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/Logger.swift:36:16: warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 |
35 | /// The current log level. Defaults to `.none`.
36 | static var level: Level = .none
| |- warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'level' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'level' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 |
38 | /// Logs a message if the specified level is at or above the current threshold.
[12/21] Compiling SpendOwl APIClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/Logger.swift:36:16: warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 |
35 | /// The current log level. Defaults to `.none`.
36 | static var level: Level = .none
| |- warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'level' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'level' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 |
38 | /// Logs a message if the specified level is at or above the current threshold.
[13/21] Compiling SpendOwl ConsumableHistory.swift
[14/21] Compiling SpendOwl PurchaseTracker+Testing.swift
[15/21] Compiling SpendOwl BackgroundTaskAssertion.swift
[16/21] Compiling SpendOwl Configuration.swift
[17/21] Compiling SpendOwl PurchaseTracker.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/SpendOwl.swift:285:14: 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
283 | /// - Parameter completion: Called with the attribution result. May be called on any queue.
284 | public static func attribution(completion: ((Result<AttributionResult, SpendOwlError>) -> Void)? = nil) {
285 | 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
286 | await shared.trackAttributionInternal(completion: completion)
| `- note: closure captures 'completion' which is accessible to code in the current task
287 | }
288 | }
[18/21] Compiling SpendOwl SpendOwl.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/SpendOwl.swift:285:14: 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
283 | /// - Parameter completion: Called with the attribution result. May be called on any queue.
284 | public static func attribution(completion: ((Result<AttributionResult, SpendOwlError>) -> Void)? = nil) {
285 | 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
286 | await shared.trackAttributionInternal(completion: completion)
| `- note: closure captures 'completion' which is accessible to code in the current task
287 | }
288 | }
[19/21] Emitting module SpendOwl
/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/Logger.swift:36:16: warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 |
35 | /// The current log level. Defaults to `.none`.
36 | static var level: Level = .none
| |- warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'level' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'level' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 |
38 | /// Logs a message if the specified level is at or above the current threshold.
[20/21] Compiling SpendOwl AttributionResult.swift
[21/21] Compiling SpendOwl AttributionService.swift
Build complete! (9.00s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SpendOwl",
"name" : "SpendOwl",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "SpendOwl",
"targets" : [
"SpendOwl"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "SpendOwlTests",
"module_type" : "SwiftTarget",
"name" : "SpendOwlTests",
"path" : "Tests/SpendOwlTests",
"sources" : [
"AttributionTests.swift",
"ConsumableHistoryTests.swift",
"EventQueueTests.swift",
"PurchaseTrackerTests.swift",
"SpendOwlTests.swift"
],
"target_dependencies" : [
"SpendOwl"
],
"type" : "test"
},
{
"c99name" : "SpendOwl",
"module_type" : "SwiftTarget",
"name" : "SpendOwl",
"path" : "Sources/SpendOwl",
"product_memberships" : [
"SpendOwl"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/SpendOwl/PrivacyInfo.xcprivacy",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Attribution/AttributionResult.swift",
"Attribution/AttributionService.swift",
"BackgroundTaskAssertion.swift",
"Configuration.swift",
"Logger.swift",
"Network/APIClient.swift",
"Purchases/ConsumableHistory.swift",
"Purchases/PurchaseTracker+Testing.swift",
"Purchases/PurchaseTracker.swift",
"SpendOwl.swift",
"SpendOwlError.swift",
"Storage/AttributionQueue.swift",
"Storage/Defaults.swift",
"Storage/EventQueue.swift",
"Storage/KeychainHelper.swift",
"Version.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.