Build Information
Successful build of KwtSMS, reference main (860756), with Swift 6.1 for macOS (SPM) on 14 Mar 2026 00:36:27 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: 4.69.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/boxlinknet/kwtsms-swift.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/boxlinknet/kwtsms-swift
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 8607561 docs: update README for v0.3.0 with phone validation, fix version refs
Cloned https://github.com/boxlinknet/kwtsms-swift.git
Revision (git rev-parse @):
86075613b084f370bc4c9910b83227d79fe0a40a
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/boxlinknet/kwtsms-swift.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/boxlinknet/kwtsms-swift.git
https://github.com/boxlinknet/kwtsms-swift.git
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "KwtSMS",
"name" : "KwtSMS",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "KwtSMS",
"targets" : [
"KwtSMS"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KwtSMSTests",
"module_type" : "SwiftTarget",
"name" : "KwtSMSTests",
"path" : "Tests/KwtSMSTests",
"sources" : [
"ApiErrorTests.swift",
"IntegrationTests.swift",
"MessageTests.swift",
"PhoneTests.swift"
],
"target_dependencies" : [
"KwtSMS"
],
"type" : "test"
},
{
"c99name" : "KwtSMS",
"module_type" : "SwiftTarget",
"name" : "KwtSMS",
"path" : "Sources/KwtSMS",
"product_memberships" : [
"KwtSMS"
],
"sources" : [
"ApiErrors.swift",
"EnvLoader.swift",
"KwtSMS.swift",
"Logger.swift",
"MessageUtils.swift",
"PhoneUtils.swift",
"Request.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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/10] Compiling KwtSMS PhoneUtils.swift
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/PhoneUtils.swift:24:12: warning: let 'phoneRules' is not concurrency-safe because non-'Sendable' type '[String : PhoneRule]' may have shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | /// Validation rule for a country's phone numbers.
6 | public struct PhoneRule {
| `- note: consider making struct 'PhoneRule' conform to the 'Sendable' protocol
7 | /// Valid local number lengths (digits after country code).
8 | public let localLengths: [Int]
:
22 | /// mobileStartDigits: valid first character(s) of the local number
23 | /// Countries not listed here pass through with generic E.164 validation (7-15 digits).
24 | public let phoneRules: [String: PhoneRule] = [
| |- warning: let 'phoneRules' is not concurrency-safe because non-'Sendable' type '[String : PhoneRule]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'phoneRules' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | // === GCC ===
26 | "965": PhoneRule(localLengths: [8], mobileStartDigits: ["4", "5", "6", "9"]), // Kuwait
[4/10] Compiling KwtSMS MessageUtils.swift
[5/10] Compiling KwtSMS ApiErrors.swift
[6/10] Compiling KwtSMS KwtSMS.swift
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:198:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
196 | public func verify() async -> VerifyResult {
197 | do {
198 | let response = try await apiRequest(
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
199 | endpoint: "balance",
200 | payload: authPayload,
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:310:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
308 | payload["mobile"] = validNumbers.joined(separator: ",")
309 |
310 | let response = try await apiRequest(endpoint: "validate", payload: payload, logFile: logFile)
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
311 | let result = response["result"] as? String ?? ""
312 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:335:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
333 | public func senderIds() async -> SenderIdResult {
334 | do {
335 | let response = try await apiRequest(endpoint: "senderid", payload: authPayload, logFile: logFile)
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
336 | let result = response["result"] as? String ?? ""
337 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:363:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
361 | public func coverage() async -> CoverageResult {
362 | do {
363 | let response = try await apiRequest(endpoint: "coverage", payload: authPayload, logFile: logFile)
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
364 | let result = response["result"] as? String ?? ""
365 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:395:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
393 | payload["msgid"] = msgId
394 |
395 | let response = try await apiRequest(endpoint: "status", payload: payload, logFile: logFile)
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
396 | let result = response["result"] as? String ?? ""
397 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:437:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
435 | payload["msgid"] = msgId
436 |
437 | let response = try await apiRequest(endpoint: "dlr", payload: payload, logFile: logFile)
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
438 | let result = response["result"] as? String ?? ""
439 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:533:38: warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
531 |
532 | do {
533 | let response = try await apiRequest(endpoint: "send", payload: payload, logFile: logFile)
| `- warning: non-sendable result type '[String : Any]' cannot be sent from nonisolated context in call to global function 'apiRequest(endpoint:payload:logFile:)'; this is an error in the Swift 6 language mode
534 | let result = response["result"] as? String ?? ""
535 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:198:38: warning: sending 'self.authPayload' risks causing data races; this is an error in the Swift 6 language mode
196 | public func verify() async -> VerifyResult {
197 | do {
198 | let response = try await apiRequest(
| |- warning: sending 'self.authPayload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.authPayload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
199 | endpoint: "balance",
200 | payload: authPayload,
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:533:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
531 |
532 | do {
533 | let response = try await apiRequest(endpoint: "send", payload: payload, logFile: logFile)
| |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'payload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
534 | let result = response["result"] as? String ?? ""
535 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:310:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
308 | payload["mobile"] = validNumbers.joined(separator: ",")
309 |
310 | let response = try await apiRequest(endpoint: "validate", payload: payload, logFile: logFile)
| |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'payload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
311 | let result = response["result"] as? String ?? ""
312 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:335:38: warning: sending 'self.authPayload' risks causing data races; this is an error in the Swift 6 language mode
333 | public func senderIds() async -> SenderIdResult {
334 | do {
335 | let response = try await apiRequest(endpoint: "senderid", payload: authPayload, logFile: logFile)
| |- warning: sending 'self.authPayload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.authPayload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
336 | let result = response["result"] as? String ?? ""
337 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:363:38: warning: sending 'self.authPayload' risks causing data races; this is an error in the Swift 6 language mode
361 | public func coverage() async -> CoverageResult {
362 | do {
363 | let response = try await apiRequest(endpoint: "coverage", payload: authPayload, logFile: logFile)
| |- warning: sending 'self.authPayload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.authPayload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
364 | let result = response["result"] as? String ?? ""
365 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:395:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
393 | payload["msgid"] = msgId
394 |
395 | let response = try await apiRequest(endpoint: "status", payload: payload, logFile: logFile)
| |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'payload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
396 | let result = response["result"] as? String ?? ""
397 |
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/KwtSMS.swift:437:38: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
435 | payload["msgid"] = msgId
436 |
437 | let response = try await apiRequest(endpoint: "dlr", payload: payload, logFile: logFile)
| |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'payload' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
438 | let result = response["result"] as? String ?? ""
439 |
[7/10] Emitting module KwtSMS
/Users/admin/builder/spi-builder-workspace/Sources/KwtSMS/PhoneUtils.swift:24:12: warning: let 'phoneRules' is not concurrency-safe because non-'Sendable' type '[String : PhoneRule]' may have shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | /// Validation rule for a country's phone numbers.
6 | public struct PhoneRule {
| `- note: consider making struct 'PhoneRule' conform to the 'Sendable' protocol
7 | /// Valid local number lengths (digits after country code).
8 | public let localLengths: [Int]
:
22 | /// mobileStartDigits: valid first character(s) of the local number
23 | /// Countries not listed here pass through with generic E.164 validation (7-15 digits).
24 | public let phoneRules: [String: PhoneRule] = [
| |- warning: let 'phoneRules' is not concurrency-safe because non-'Sendable' type '[String : PhoneRule]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'phoneRules' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | // === GCC ===
26 | "965": PhoneRule(localLengths: [8], mobileStartDigits: ["4", "5", "6", "9"]), // Kuwait
[8/10] Compiling KwtSMS Request.swift
[9/10] Compiling KwtSMS Logger.swift
[10/10] Compiling KwtSMS EnvLoader.swift
Build complete! (4.79s)
Build complete.
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "KwtSMS",
"name" : "KwtSMS",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "KwtSMS",
"targets" : [
"KwtSMS"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KwtSMSTests",
"module_type" : "SwiftTarget",
"name" : "KwtSMSTests",
"path" : "Tests/KwtSMSTests",
"sources" : [
"ApiErrorTests.swift",
"IntegrationTests.swift",
"MessageTests.swift",
"PhoneTests.swift"
],
"target_dependencies" : [
"KwtSMS"
],
"type" : "test"
},
{
"c99name" : "KwtSMS",
"module_type" : "SwiftTarget",
"name" : "KwtSMS",
"path" : "Sources/KwtSMS",
"product_memberships" : [
"KwtSMS"
],
"sources" : [
"ApiErrors.swift",
"EnvLoader.swift",
"KwtSMS.swift",
"Logger.swift",
"MessageUtils.swift",
"PhoneUtils.swift",
"Request.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.