Build Information
Successful build of URLScission, reference master (8d0dc0), with Swift 6.1 for macOS (SPM) on 13 Aug 2026 11:11:35 UTC.
Swift 6 data race errors: 29
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/inso1337/URLScission.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/inso1337/URLScission
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 8d0dc0e Add allowDomains: exempt hosts from all blocking (hole in a broad block)
Cloned https://github.com/inso1337/URLScission.git
Revision (git rev-parse @):
8d0dc0e6b7a8e6d769b25137bbb1e140d6a06cb2
SUCCESS checkout https://github.com/inso1337/URLScission.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/inso1337/URLScission.git
https://github.com/inso1337/URLScission.git
{
"dependencies" : [
],
"manifest_display_name" : "URLScission",
"name" : "URLScission",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "4.0"
}
],
"products" : [
{
"name" : "URLScission",
"targets" : [
"URLScission"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "URLScissionInject",
"targets" : [
"URLScissionInject"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "URLScissionTests",
"module_type" : "SwiftTarget",
"name" : "URLScissionTests",
"path" : "Tests/URLScissionTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/URLScissionTests/test.mock",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"InterceptionEngineTests.swift",
"RestServiceNetwork.swift",
"RuleConfigTests.swift",
"URLScissionTests.swift"
],
"target_dependencies" : [
"URLScission"
],
"type" : "test"
},
{
"c99name" : "URLScissionInject",
"module_type" : "SwiftTarget",
"name" : "URLScissionInject",
"path" : "Sources/URLScissionInject",
"product_memberships" : [
"URLScissionInject"
],
"sources" : [
"DaemonLogSink.swift",
"DaemonRuleSource.swift",
"MSHookFunctionHooker.swift",
"URLScissionInject.swift"
],
"target_dependencies" : [
"URLScission",
"URLScissionCHooks"
],
"type" : "library"
},
{
"c99name" : "URLScissionCHooks",
"module_type" : "ClangTarget",
"name" : "URLScissionCHooks",
"path" : "Sources/URLScissionCHooks",
"product_memberships" : [
"URLScissionInject"
],
"sources" : [
"chooks.c"
],
"type" : "library"
},
{
"c99name" : "URLScission",
"module_type" : "SwiftTarget",
"name" : "URLScission",
"path" : "Sources/URLScission",
"product_memberships" : [
"URLScission",
"URLScissionInject"
],
"sources" : [
"Abstractions/FunctionHooker.swift",
"Abstractions/RuleSource.swift",
"DataMock.swift",
"Interception/InterceptionEngine.swift",
"Interception/Interceptor.swift",
"Interception/RuleConfig.swift",
"Interception/RuleStore.swift",
"Interception/URLScission+Engine.swift",
"Interception/URLSessionInterceptors.swift",
"Logger.swift",
"Mock.swift",
"MockAction.swift",
"MockClient.swift",
"MockParser.swift",
"MockSession.swift",
"MockSessionError.swift",
"MockSessionTask.swift",
"MockStorage.swift",
"URLSessionClient.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
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/4] Write sources
[2/4] Write swift-version-2F0A5646E1D333AE.txt
[3/23] Compiling URLScissionCHooks chooks.c
[5/23] Compiling URLScission RuleStore.swift
[6/23] Compiling URLScission URLScission+Engine.swift
[7/24] Compiling URLScission DataMock.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/InterceptionEngine.swift:44:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'InterceptionEngine' may have shared mutable state; this is an error in the Swift 6 language mode
40 | }
41 |
42 | public final class InterceptionEngine {
| `- note: class 'InterceptionEngine' does not conform to the 'Sendable' protocol
43 |
44 | public static let shared = InterceptionEngine()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'InterceptionEngine' 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
45 |
46 | /// Installed interception methods.
[8/24] Compiling URLScission InterceptionEngine.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/InterceptionEngine.swift:44:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'InterceptionEngine' may have shared mutable state; this is an error in the Swift 6 language mode
40 | }
41 |
42 | public final class InterceptionEngine {
| `- note: class 'InterceptionEngine' does not conform to the 'Sendable' protocol
43 |
44 | public static let shared = InterceptionEngine()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'InterceptionEngine' 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
45 |
46 | /// Installed interception methods.
[9/24] Compiling URLScission FunctionHooker.swift
[10/24] Compiling URLScission RuleSource.swift
[11/24] Emitting module URLScission
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/InterceptionEngine.swift:44:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'InterceptionEngine' may have shared mutable state; this is an error in the Swift 6 language mode
40 | }
41 |
42 | public final class InterceptionEngine {
| `- note: class 'InterceptionEngine' does not conform to the 'Sendable' protocol
43 |
44 | public static let shared = InterceptionEngine()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'InterceptionEngine' 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
45 |
46 | /// Installed interception methods.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:21:23: warning: static property 'defaultURLProtocol' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
19 | /// (URLScission's original method). Full control over NSURLSession traffic
20 | /// on the default/shared configuration.
21 | public static let defaultURLProtocol = InterceptionMethod(rawValue: 1 << 0)
| |- warning: static property 'defaultURLProtocol' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultURLProtocol' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | /// Also cover custom and ephemeral `URLSessionConfiguration`s.
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:23:23: warning: static property 'allURLSessionConfigs' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
21 | public static let defaultURLProtocol = InterceptionMethod(rawValue: 1 << 0)
22 | /// Also cover custom and ephemeral `URLSessionConfiguration`s.
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
| |- warning: static property 'allURLSessionConfigs' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'allURLSessionConfigs' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | /// CFNetwork request construction (`CFURLRequestCreate*`, `CFHTTPMessageCreateRequest`).
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:25:23: warning: static property 'cfNetwork' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
24 | /// CFNetwork request construction (`CFURLRequestCreate*`, `CFHTTPMessageCreateRequest`).
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
| |- warning: static property 'cfNetwork' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'cfNetwork' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | /// Network.framework `nw_connection_send` (plaintext, pre-TLS).
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:27:23: warning: static property 'networkFramework' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
26 | /// Network.framework `nw_connection_send` (plaintext, pre-TLS).
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
| |- warning: static property 'networkFramework' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'networkFramework' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | /// boringssl `SSL_write` (plaintext into TLS) — the universal TLS chokepoint.
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:29:23: warning: static property 'tls' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
28 | /// boringssl `SSL_write` (plaintext into TLS) — the universal TLS chokepoint.
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
| |- warning: static property 'tls' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'tls' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | /// `CFURL`/`NSURL` construction — protocol-independent URL observation.
31 | public static let urlObject = InterceptionMethod(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:31:23: warning: static property 'urlObject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
30 | /// `CFURL`/`NSURL` construction — protocol-independent URL observation.
31 | public static let urlObject = InterceptionMethod(rawValue: 1 << 5)
| |- warning: static property 'urlObject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'urlObject' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | /// Everything safe to adopt inside your own app: full intercept via URLProtocol.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:34:23: warning: static property 'adopt' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
32 |
33 | /// Everything safe to adopt inside your own app: full intercept via URLProtocol.
34 | public static let adopt: InterceptionMethod = [.defaultURLProtocol, .allURLSessionConfigs]
| |- warning: static property 'adopt' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'adopt' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | /// Observe-only hooks for injecting into another app. Deliberately excludes the
36 | /// URLProtocol methods: those re-issue every request as a fresh real load,
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:39:23: warning: static property 'inject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
37 | /// which would double the host app's traffic (and flood on TLS cert checks).
38 | /// The C-layer hooks see everything without re-issuing.
39 | public static let inject: InterceptionMethod = [.cfNetwork, .networkFramework, .tls, .urlObject]
| |- warning: static property 'inject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'inject' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | /// Full injection incl. the re-issuing URLProtocol intercept — only when you
41 | /// actually want to block/mock/modify inside the injected app, accepting the
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:43:23: warning: static property 'injectFull' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
41 | /// actually want to block/mock/modify inside the injected app, accepting the
42 | /// re-issue cost.
43 | public static let injectFull: InterceptionMethod =
| |- warning: static property 'injectFull' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'injectFull' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | [.defaultURLProtocol, .allURLSessionConfigs, .cfNetwork, .networkFramework, .tls, .urlObject]
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:53:23: warning: static property 'observe' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
52 |
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
| |- warning: static property 'observe' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'observe' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:54:23: warning: static property 'block' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
52 |
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
| |- warning: static property 'block' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'block' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:55:23: warning: static property 'mock' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
| |- warning: static property 'mock' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'mock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:56:23: warning: static property 'modifyRequest' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
| |- warning: static property 'modifyRequest' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'modifyRequest' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:57:23: warning: static property 'modifyResponse' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
| |- warning: static property 'modifyResponse' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'modifyResponse' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
59 |
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:58:23: warning: static property 'replay' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
| |- warning: static property 'replay' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'replay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// A loader-replacement (URLProtocol) can do it all.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:61:23: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
59 |
60 | /// A loader-replacement (URLProtocol) can do it all.
61 | public static let full: InterceptorCapability =
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'full' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | [.observe, .block, .mock, .modifyRequest, .modifyResponse, .replay]
63 | }
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:16:13: warning: 'Sendable' class 'EngineURLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
14 | /// Engine-driven URLProtocol. Inserted into a session configuration's
15 | /// `protocolClasses` by the interceptors below.
16 | final class EngineURLProtocol: URLProtocol, URLSessionDataDelegate {
| `- warning: 'Sendable' class 'EngineURLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
17 |
18 | static let handledKey = "URLScissionHandled"
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:20:17: warning: stored property 'realSession' of 'Sendable'-conforming class 'EngineURLProtocol' is mutable; this is an error in the Swift 6 language mode
18 | static let handledKey = "URLScissionHandled"
19 |
20 | private var realSession: URLSession?
| `- warning: stored property 'realSession' of 'Sendable'-conforming class 'EngineURLProtocol' is mutable; this is an error in the Swift 6 language mode
21 | private var realTask: URLSessionDataTask?
22 | private var collected = Data()
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:218:24: warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
216 | public let capabilities: InterceptorCapability = .full
217 |
218 | private static var installed = false
| |- warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'installed' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'installed' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
219 |
220 | public func install(engine: InterceptionEngine) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:239:24: warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
237 | public let capabilities: InterceptorCapability = .full
238 |
239 | private static var installed = false
| |- warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'installed' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'installed' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
240 |
241 | public func install(engine: InterceptionEngine) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:26:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | extension OSLog {
26 | private static var subsystem = Bundle.main.bundleIdentifier!
| |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | private static var networkIdentifer = "network"
28 | private static var mockIdentier = "mock"
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:27:24: warning: static property 'networkIdentifer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
25 | extension OSLog {
26 | private static var subsystem = Bundle.main.bundleIdentifier!
27 | private static var networkIdentifer = "network"
| |- warning: static property 'networkIdentifer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'networkIdentifer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'networkIdentifer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | private static var mockIdentier = "mock"
29 |
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:28:24: warning: static property 'mockIdentier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 | private static var subsystem = Bundle.main.bundleIdentifier!
27 | private static var networkIdentifer = "network"
28 | private static var mockIdentier = "mock"
| |- warning: static property 'mockIdentier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mockIdentier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mockIdentier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |
30 | /// Logs the network call.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:34:16: warning: static property 'mock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Logs the mock call.
34 | static var mock: OSLog = OSLog(subsystem: subsystem, category: mockIdentier)
| |- warning: static property 'mock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mock' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLScissionDefault' may have shared mutable state; this is an error in the Swift 6 language mode
10 | import os.log
11 |
12 | class URLScissionDefault {
| `- note: class 'URLScissionDefault' does not conform to the 'Sendable' protocol
13 | static let shared = URLScissionDefault()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLScissionDefault' 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 |
15 | var currentRouter: URLScissionRouter?
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:20:23: warning: static property 'mockStorage' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | public class URLScission {
19 |
20 | public static var mockStorage = MockStorage()
| |- warning: static property 'mockStorage' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mockStorage' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mockStorage' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | public static func start(logNetwork: Bool = true, urlSessionRedirect: Bool = true) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:156:22: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'MockSession' may have shared mutable state; this is an error in the Swift 6 language mode
153 | }
154 |
155 | @objc public final class MockSession: NSObject, SessionClient {
| `- note: class 'MockSession' does not conform to the 'Sendable' protocol
156 | @objc static let shared = MockSession()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'MockSession' 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
157 |
158 | public func dataTask(with mock: MockAction,
[12/24] Compiling URLScission Mock.swift
[13/24] Compiling URLScission MockAction.swift
[14/24] Compiling URLScission Interceptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:21:23: warning: static property 'defaultURLProtocol' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
19 | /// (URLScission's original method). Full control over NSURLSession traffic
20 | /// on the default/shared configuration.
21 | public static let defaultURLProtocol = InterceptionMethod(rawValue: 1 << 0)
| |- warning: static property 'defaultURLProtocol' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultURLProtocol' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | /// Also cover custom and ephemeral `URLSessionConfiguration`s.
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:23:23: warning: static property 'allURLSessionConfigs' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
21 | public static let defaultURLProtocol = InterceptionMethod(rawValue: 1 << 0)
22 | /// Also cover custom and ephemeral `URLSessionConfiguration`s.
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
| |- warning: static property 'allURLSessionConfigs' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'allURLSessionConfigs' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | /// CFNetwork request construction (`CFURLRequestCreate*`, `CFHTTPMessageCreateRequest`).
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:25:23: warning: static property 'cfNetwork' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
24 | /// CFNetwork request construction (`CFURLRequestCreate*`, `CFHTTPMessageCreateRequest`).
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
| |- warning: static property 'cfNetwork' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'cfNetwork' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | /// Network.framework `nw_connection_send` (plaintext, pre-TLS).
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:27:23: warning: static property 'networkFramework' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
26 | /// Network.framework `nw_connection_send` (plaintext, pre-TLS).
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
| |- warning: static property 'networkFramework' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'networkFramework' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | /// boringssl `SSL_write` (plaintext into TLS) — the universal TLS chokepoint.
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:29:23: warning: static property 'tls' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
28 | /// boringssl `SSL_write` (plaintext into TLS) — the universal TLS chokepoint.
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
| |- warning: static property 'tls' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'tls' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | /// `CFURL`/`NSURL` construction — protocol-independent URL observation.
31 | public static let urlObject = InterceptionMethod(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:31:23: warning: static property 'urlObject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
30 | /// `CFURL`/`NSURL` construction — protocol-independent URL observation.
31 | public static let urlObject = InterceptionMethod(rawValue: 1 << 5)
| |- warning: static property 'urlObject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'urlObject' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | /// Everything safe to adopt inside your own app: full intercept via URLProtocol.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:34:23: warning: static property 'adopt' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
32 |
33 | /// Everything safe to adopt inside your own app: full intercept via URLProtocol.
34 | public static let adopt: InterceptionMethod = [.defaultURLProtocol, .allURLSessionConfigs]
| |- warning: static property 'adopt' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'adopt' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | /// Observe-only hooks for injecting into another app. Deliberately excludes the
36 | /// URLProtocol methods: those re-issue every request as a fresh real load,
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:39:23: warning: static property 'inject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
37 | /// which would double the host app's traffic (and flood on TLS cert checks).
38 | /// The C-layer hooks see everything without re-issuing.
39 | public static let inject: InterceptionMethod = [.cfNetwork, .networkFramework, .tls, .urlObject]
| |- warning: static property 'inject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'inject' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | /// Full injection incl. the re-issuing URLProtocol intercept — only when you
41 | /// actually want to block/mock/modify inside the injected app, accepting the
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:43:23: warning: static property 'injectFull' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
41 | /// actually want to block/mock/modify inside the injected app, accepting the
42 | /// re-issue cost.
43 | public static let injectFull: InterceptionMethod =
| |- warning: static property 'injectFull' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'injectFull' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | [.defaultURLProtocol, .allURLSessionConfigs, .cfNetwork, .networkFramework, .tls, .urlObject]
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:53:23: warning: static property 'observe' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
52 |
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
| |- warning: static property 'observe' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'observe' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:54:23: warning: static property 'block' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
52 |
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
| |- warning: static property 'block' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'block' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:55:23: warning: static property 'mock' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
| |- warning: static property 'mock' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'mock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:56:23: warning: static property 'modifyRequest' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
| |- warning: static property 'modifyRequest' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'modifyRequest' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:57:23: warning: static property 'modifyResponse' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
| |- warning: static property 'modifyResponse' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'modifyResponse' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
59 |
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:58:23: warning: static property 'replay' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
| |- warning: static property 'replay' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'replay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// A loader-replacement (URLProtocol) can do it all.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:61:23: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
59 |
60 | /// A loader-replacement (URLProtocol) can do it all.
61 | public static let full: InterceptorCapability =
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'full' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | [.observe, .block, .mock, .modifyRequest, .modifyResponse, .replay]
63 | }
[15/24] Compiling URLScission RuleConfig.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:21:23: warning: static property 'defaultURLProtocol' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
19 | /// (URLScission's original method). Full control over NSURLSession traffic
20 | /// on the default/shared configuration.
21 | public static let defaultURLProtocol = InterceptionMethod(rawValue: 1 << 0)
| |- warning: static property 'defaultURLProtocol' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultURLProtocol' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | /// Also cover custom and ephemeral `URLSessionConfiguration`s.
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:23:23: warning: static property 'allURLSessionConfigs' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
21 | public static let defaultURLProtocol = InterceptionMethod(rawValue: 1 << 0)
22 | /// Also cover custom and ephemeral `URLSessionConfiguration`s.
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
| |- warning: static property 'allURLSessionConfigs' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'allURLSessionConfigs' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | /// CFNetwork request construction (`CFURLRequestCreate*`, `CFHTTPMessageCreateRequest`).
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:25:23: warning: static property 'cfNetwork' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
23 | public static let allURLSessionConfigs = InterceptionMethod(rawValue: 1 << 1)
24 | /// CFNetwork request construction (`CFURLRequestCreate*`, `CFHTTPMessageCreateRequest`).
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
| |- warning: static property 'cfNetwork' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'cfNetwork' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | /// Network.framework `nw_connection_send` (plaintext, pre-TLS).
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:27:23: warning: static property 'networkFramework' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
25 | public static let cfNetwork = InterceptionMethod(rawValue: 1 << 2)
26 | /// Network.framework `nw_connection_send` (plaintext, pre-TLS).
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
| |- warning: static property 'networkFramework' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'networkFramework' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | /// boringssl `SSL_write` (plaintext into TLS) — the universal TLS chokepoint.
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:29:23: warning: static property 'tls' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
27 | public static let networkFramework = InterceptionMethod(rawValue: 1 << 3)
28 | /// boringssl `SSL_write` (plaintext into TLS) — the universal TLS chokepoint.
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
| |- warning: static property 'tls' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'tls' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | /// `CFURL`/`NSURL` construction — protocol-independent URL observation.
31 | public static let urlObject = InterceptionMethod(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:31:23: warning: static property 'urlObject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
29 | public static let tls = InterceptionMethod(rawValue: 1 << 4)
30 | /// `CFURL`/`NSURL` construction — protocol-independent URL observation.
31 | public static let urlObject = InterceptionMethod(rawValue: 1 << 5)
| |- warning: static property 'urlObject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'urlObject' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | /// Everything safe to adopt inside your own app: full intercept via URLProtocol.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:34:23: warning: static property 'adopt' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
32 |
33 | /// Everything safe to adopt inside your own app: full intercept via URLProtocol.
34 | public static let adopt: InterceptionMethod = [.defaultURLProtocol, .allURLSessionConfigs]
| |- warning: static property 'adopt' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'adopt' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | /// Observe-only hooks for injecting into another app. Deliberately excludes the
36 | /// URLProtocol methods: those re-issue every request as a fresh real load,
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:39:23: warning: static property 'inject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
37 | /// which would double the host app's traffic (and flood on TLS cert checks).
38 | /// The C-layer hooks see everything without re-issuing.
39 | public static let inject: InterceptionMethod = [.cfNetwork, .networkFramework, .tls, .urlObject]
| |- warning: static property 'inject' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'inject' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | /// Full injection incl. the re-issuing URLProtocol intercept — only when you
41 | /// actually want to block/mock/modify inside the injected app, accepting the
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:43:23: warning: static property 'injectFull' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
12 | /// The interception methods URLScission can install. An `OptionSet` so a caller
13 | /// selects any combination at `start()`.
14 | public struct InterceptionMethod: OptionSet {
| `- note: consider making struct 'InterceptionMethod' conform to the 'Sendable' protocol
15 | public let rawValue: Int
16 | public init(rawValue: Int) { self.rawValue = rawValue }
:
41 | /// actually want to block/mock/modify inside the injected app, accepting the
42 | /// re-issue cost.
43 | public static let injectFull: InterceptionMethod =
| |- warning: static property 'injectFull' is not concurrency-safe because non-'Sendable' type 'InterceptionMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'injectFull' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | [.defaultURLProtocol, .allURLSessionConfigs, .cfNetwork, .networkFramework, .tls, .urlObject]
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:53:23: warning: static property 'observe' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
52 |
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
| |- warning: static property 'observe' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'observe' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:54:23: warning: static property 'block' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
52 |
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
| |- warning: static property 'block' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'block' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:55:23: warning: static property 'mock' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
53 | public static let observe = InterceptorCapability(rawValue: 1 << 0)
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
| |- warning: static property 'mock' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'mock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:56:23: warning: static property 'modifyRequest' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
54 | public static let block = InterceptorCapability(rawValue: 1 << 1)
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
| |- warning: static property 'modifyRequest' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'modifyRequest' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:57:23: warning: static property 'modifyResponse' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
55 | public static let mock = InterceptorCapability(rawValue: 1 << 2)
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
| |- warning: static property 'modifyResponse' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'modifyResponse' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
59 |
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:58:23: warning: static property 'replay' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
56 | public static let modifyRequest = InterceptorCapability(rawValue: 1 << 3)
57 | public static let modifyResponse = InterceptorCapability(rawValue: 1 << 4)
58 | public static let replay = InterceptorCapability(rawValue: 1 << 5)
| |- warning: static property 'replay' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'replay' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | /// A loader-replacement (URLProtocol) can do it all.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/Interceptor.swift:61:23: warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
47 | /// What an interceptor can actually do at its layer — the engine will not ask a
48 | /// method to perform an action it cannot.
49 | public struct InterceptorCapability: OptionSet {
| `- note: consider making struct 'InterceptorCapability' conform to the 'Sendable' protocol
50 | public let rawValue: Int
51 | public init(rawValue: Int) { self.rawValue = rawValue }
:
59 |
60 | /// A loader-replacement (URLProtocol) can do it all.
61 | public static let full: InterceptorCapability =
| |- warning: static property 'full' is not concurrency-safe because non-'Sendable' type 'InterceptorCapability' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'full' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | [.observe, .block, .mock, .modifyRequest, .modifyResponse, .replay]
63 | }
[16/24] Compiling URLScission MockSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLScissionDefault' may have shared mutable state; this is an error in the Swift 6 language mode
10 | import os.log
11 |
12 | class URLScissionDefault {
| `- note: class 'URLScissionDefault' does not conform to the 'Sendable' protocol
13 | static let shared = URLScissionDefault()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLScissionDefault' 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 |
15 | var currentRouter: URLScissionRouter?
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:20:23: warning: static property 'mockStorage' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | public class URLScission {
19 |
20 | public static var mockStorage = MockStorage()
| |- warning: static property 'mockStorage' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mockStorage' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mockStorage' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | public static func start(logNetwork: Bool = true, urlSessionRedirect: Bool = true) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:156:22: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'MockSession' may have shared mutable state; this is an error in the Swift 6 language mode
153 | }
154 |
155 | @objc public final class MockSession: NSObject, SessionClient {
| `- note: class 'MockSession' does not conform to the 'Sendable' protocol
156 | @objc static let shared = MockSession()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'MockSession' 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
157 |
158 | public func dataTask(with mock: MockAction,
[17/24] Compiling URLScission MockSessionError.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLScissionDefault' may have shared mutable state; this is an error in the Swift 6 language mode
10 | import os.log
11 |
12 | class URLScissionDefault {
| `- note: class 'URLScissionDefault' does not conform to the 'Sendable' protocol
13 | static let shared = URLScissionDefault()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLScissionDefault' 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 |
15 | var currentRouter: URLScissionRouter?
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:20:23: warning: static property 'mockStorage' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 | public class URLScission {
19 |
20 | public static var mockStorage = MockStorage()
| |- warning: static property 'mockStorage' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mockStorage' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mockStorage' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | public static func start(logNetwork: Bool = true, urlSessionRedirect: Bool = true) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSession.swift:156:22: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'MockSession' may have shared mutable state; this is an error in the Swift 6 language mode
153 | }
154 |
155 | @objc public final class MockSession: NSObject, SessionClient {
| `- note: class 'MockSession' does not conform to the 'Sendable' protocol
156 | @objc static let shared = MockSession()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'MockSession' 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
157 |
158 | public func dataTask(with mock: MockAction,
[18/24] Compiling URLScission MockSessionTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSessionTask.swift:39:13: warning: capture of 'self' with non-sendable type 'MockSessionTask' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public final class MockSessionTask: SessionDataTask {
| `- note: class 'MockSessionTask' does not conform to the 'Sendable' protocol
12 | public var delegateQueue = OperationQueue()
13 |
:
37 | public func resumeAfter(deadline: DispatchTime) {
38 | self.queue.asyncAfter(deadline: deadline) {
39 | self.resume()
| `- warning: capture of 'self' with non-sendable type 'MockSessionTask' in a '@Sendable' closure
40 | }
41 | }
[19/24] Compiling URLScission MockStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/MockSessionTask.swift:39:13: warning: capture of 'self' with non-sendable type 'MockSessionTask' in a '@Sendable' closure
9 | import Foundation
10 |
11 | public final class MockSessionTask: SessionDataTask {
| `- note: class 'MockSessionTask' does not conform to the 'Sendable' protocol
12 | public var delegateQueue = OperationQueue()
13 |
:
37 | public func resumeAfter(deadline: DispatchTime) {
38 | self.queue.asyncAfter(deadline: deadline) {
39 | self.resume()
| `- warning: capture of 'self' with non-sendable type 'MockSessionTask' in a '@Sendable' closure
40 | }
41 | }
[20/24] Compiling URLScission MockClient.swift
[21/24] Compiling URLScission MockParser.swift
[22/24] Compiling URLScission URLSessionInterceptors.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:16:13: warning: 'Sendable' class 'EngineURLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
14 | /// Engine-driven URLProtocol. Inserted into a session configuration's
15 | /// `protocolClasses` by the interceptors below.
16 | final class EngineURLProtocol: URLProtocol, URLSessionDataDelegate {
| `- warning: 'Sendable' class 'EngineURLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
17 |
18 | static let handledKey = "URLScissionHandled"
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:20:17: warning: stored property 'realSession' of 'Sendable'-conforming class 'EngineURLProtocol' is mutable; this is an error in the Swift 6 language mode
18 | static let handledKey = "URLScissionHandled"
19 |
20 | private var realSession: URLSession?
| `- warning: stored property 'realSession' of 'Sendable'-conforming class 'EngineURLProtocol' is mutable; this is an error in the Swift 6 language mode
21 | private var realTask: URLSessionDataTask?
22 | private var collected = Data()
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:218:24: warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
216 | public let capabilities: InterceptorCapability = .full
217 |
218 | private static var installed = false
| |- warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'installed' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'installed' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
219 |
220 | public func install(engine: InterceptionEngine) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:239:24: warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
237 | public let capabilities: InterceptorCapability = .full
238 |
239 | private static var installed = false
| |- warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'installed' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'installed' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
240 |
241 | public func install(engine: InterceptionEngine) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:26:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | extension OSLog {
26 | private static var subsystem = Bundle.main.bundleIdentifier!
| |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | private static var networkIdentifer = "network"
28 | private static var mockIdentier = "mock"
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:27:24: warning: static property 'networkIdentifer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
25 | extension OSLog {
26 | private static var subsystem = Bundle.main.bundleIdentifier!
27 | private static var networkIdentifer = "network"
| |- warning: static property 'networkIdentifer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'networkIdentifer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'networkIdentifer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | private static var mockIdentier = "mock"
29 |
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:28:24: warning: static property 'mockIdentier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 | private static var subsystem = Bundle.main.bundleIdentifier!
27 | private static var networkIdentifer = "network"
28 | private static var mockIdentier = "mock"
| |- warning: static property 'mockIdentier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mockIdentier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mockIdentier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |
30 | /// Logs the network call.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:34:16: warning: static property 'mock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Logs the mock call.
34 | static var mock: OSLog = OSLog(subsystem: subsystem, category: mockIdentier)
| |- warning: static property 'mock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mock' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |
36 | }
[23/24] Compiling URLScission Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:16:13: warning: 'Sendable' class 'EngineURLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
14 | /// Engine-driven URLProtocol. Inserted into a session configuration's
15 | /// `protocolClasses` by the interceptors below.
16 | final class EngineURLProtocol: URLProtocol, URLSessionDataDelegate {
| `- warning: 'Sendable' class 'EngineURLProtocol' cannot inherit from another class other than 'NSObject'; this is an error in the Swift 6 language mode
17 |
18 | static let handledKey = "URLScissionHandled"
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:20:17: warning: stored property 'realSession' of 'Sendable'-conforming class 'EngineURLProtocol' is mutable; this is an error in the Swift 6 language mode
18 | static let handledKey = "URLScissionHandled"
19 |
20 | private var realSession: URLSession?
| `- warning: stored property 'realSession' of 'Sendable'-conforming class 'EngineURLProtocol' is mutable; this is an error in the Swift 6 language mode
21 | private var realTask: URLSessionDataTask?
22 | private var collected = Data()
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:218:24: warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
216 | public let capabilities: InterceptorCapability = .full
217 |
218 | private static var installed = false
| |- warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'installed' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'installed' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
219 |
220 | public func install(engine: InterceptionEngine) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Interception/URLSessionInterceptors.swift:239:24: warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
237 | public let capabilities: InterceptorCapability = .full
238 |
239 | private static var installed = false
| |- warning: static property 'installed' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'installed' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'installed' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
240 |
241 | public func install(engine: InterceptionEngine) {
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:26:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | extension OSLog {
26 | private static var subsystem = Bundle.main.bundleIdentifier!
| |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | private static var networkIdentifer = "network"
28 | private static var mockIdentier = "mock"
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:27:24: warning: static property 'networkIdentifer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
25 | extension OSLog {
26 | private static var subsystem = Bundle.main.bundleIdentifier!
27 | private static var networkIdentifer = "network"
| |- warning: static property 'networkIdentifer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'networkIdentifer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'networkIdentifer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | private static var mockIdentier = "mock"
29 |
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:28:24: warning: static property 'mockIdentier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 | private static var subsystem = Bundle.main.bundleIdentifier!
27 | private static var networkIdentifer = "network"
28 | private static var mockIdentier = "mock"
| |- warning: static property 'mockIdentier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mockIdentier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mockIdentier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |
30 | /// Logs the network call.
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/Logger.swift:34:16: warning: static property 'mock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Logs the mock call.
34 | static var mock: OSLog = OSLog(subsystem: subsystem, category: mockIdentier)
| |- warning: static property 'mock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mock' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'mock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 |
36 | }
[24/24] Compiling URLScission URLSessionClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/URLSessionClient.swift:33:87: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
30 |
31 | extension URLSession: SessionClient {
32 | public func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> SessionDataTask {
| `- note: parameter 'completionHandler' is implicitly non-sendable
33 | let res: URLSessionDataTask = self.dataTask(with: request, completionHandler: completionHandler)
| `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
34 | return res as SessionDataTask
35 | }
/Users/admin/builder/spi-builder-workspace/Sources/URLScission/URLSessionClient.swift:26:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
24 | public func resumeAfter(deadline: DispatchTime) {
25 | DispatchQueue.main.asyncAfter(deadline: deadline) {
26 | self.resume()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
27 | }
28 | }
[25/29] Compiling URLScissionInject MSHookFunctionHooker.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/MSHookFunctionHooker.swift:18:13: warning: let 'rtldDefault' is not concurrency-safe because non-'Sendable' type 'UnsafeMutableRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | /// RTLD_DEFAULT — search every loaded image.
18 | private let rtldDefault = UnsafeMutableRawPointer(bitPattern: -2)
| |- warning: let 'rtldDefault' is not concurrency-safe because non-'Sendable' type 'UnsafeMutableRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'rtldDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | public final class MSHookFunctionHooker: FunctionHooker {
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
| `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 | case none
3 | case some(Wrapped)
[26/29] Compiling URLScissionInject URLScissionInject.swift
[27/29] Compiling URLScissionInject DaemonRuleSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/DaemonRuleSource.swift:52:30: warning: capture of 'self' with non-sendable type 'DaemonRuleSource?' in a '@Sendable' closure
17 | #endif
18 |
19 | public final class DaemonRuleSource: RuleSource {
| `- note: class 'DaemonRuleSource' does not conform to the 'Sendable' protocol
20 |
21 | private let store = RuleStore()
:
50 | private func fetch() {
51 | queue.async { [weak self] in
52 | guard let self = self, let data = self.request(), !data.isEmpty else {
| `- warning: capture of 'self' with non-sendable type 'DaemonRuleSource?' in a '@Sendable' closure
53 | #if URLSCISSION_SINK_DEBUG
54 | NSLog("[rules] fetch: no data from :%d", Int(self?.port ?? 0))
[28/29] Emitting module URLScissionInject
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/MSHookFunctionHooker.swift:18:13: warning: let 'rtldDefault' is not concurrency-safe because non-'Sendable' type 'UnsafeMutableRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | /// RTLD_DEFAULT — search every loaded image.
18 | private let rtldDefault = UnsafeMutableRawPointer(bitPattern: -2)
| |- warning: let 'rtldDefault' is not concurrency-safe because non-'Sendable' type 'UnsafeMutableRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'rtldDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | public final class MSHookFunctionHooker: FunctionHooker {
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
| `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 | case none
3 | case some(Wrapped)
[29/29] Compiling URLScissionInject DaemonLogSink.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/DaemonLogSink.swift:83:22: warning: capture of 'self' with non-sendable type 'DaemonLogSink' in a '@Sendable' closure
21 | #endif
22 |
23 | public final class DaemonLogSink: InterceptionLogSink {
| `- note: class 'DaemonLogSink' does not conform to the 'Sendable' protocol
24 |
25 | private let host: String
:
81 | data.append(0x0a)
82 | queue.async { [self] in
83 | var ok = writeAll(data)
| `- warning: capture of 'self' with non-sendable type 'DaemonLogSink' in a '@Sendable' closure
84 | if !ok { // reconnect + retry once
85 | disconnect()
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/DaemonLogSink.swift:83:31: warning: reference to captured var 'data' in concurrently-executing code
81 | data.append(0x0a)
82 | queue.async { [self] in
83 | var ok = writeAll(data)
| `- warning: reference to captured var 'data' in concurrently-executing code
84 | if !ok { // reconnect + retry once
85 | disconnect()
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/DaemonLogSink.swift:86:43: warning: implicit capture of 'self' requires that 'DaemonLogSink' conforms to 'Sendable'; this is an error in the Swift 6 language mode
21 | #endif
22 |
23 | public final class DaemonLogSink: InterceptionLogSink {
| `- note: class 'DaemonLogSink' does not conform to the 'Sendable' protocol
24 |
25 | private let host: String
:
84 | if !ok { // reconnect + retry once
85 | disconnect()
86 | ok = connectIfNeeded() && writeAll(data)
| `- warning: implicit capture of 'self' requires that 'DaemonLogSink' conforms to 'Sendable'; this is an error in the Swift 6 language mode
87 | }
88 | #if URLSCISSION_SINK_DEBUG
/Users/admin/builder/spi-builder-workspace/Sources/URLScissionInject/DaemonLogSink.swift:86:52: warning: reference to captured var 'data' in concurrently-executing code; this is an error in the Swift 6 language mode
84 | if !ok { // reconnect + retry once
85 | disconnect()
86 | ok = connectIfNeeded() && writeAll(data)
| `- warning: reference to captured var 'data' in concurrently-executing code; this is an error in the Swift 6 language mode
87 | }
88 | #if URLSCISSION_SINK_DEBUG
Build complete! (5.25s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "URLScission",
"name" : "URLScission",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "4.0"
}
],
"products" : [
{
"name" : "URLScission",
"targets" : [
"URLScission"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "URLScissionInject",
"targets" : [
"URLScissionInject"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "URLScissionTests",
"module_type" : "SwiftTarget",
"name" : "URLScissionTests",
"path" : "Tests/URLScissionTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/URLScissionTests/test.mock",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"InterceptionEngineTests.swift",
"RestServiceNetwork.swift",
"RuleConfigTests.swift",
"URLScissionTests.swift"
],
"target_dependencies" : [
"URLScission"
],
"type" : "test"
},
{
"c99name" : "URLScissionInject",
"module_type" : "SwiftTarget",
"name" : "URLScissionInject",
"path" : "Sources/URLScissionInject",
"product_memberships" : [
"URLScissionInject"
],
"sources" : [
"DaemonLogSink.swift",
"DaemonRuleSource.swift",
"MSHookFunctionHooker.swift",
"URLScissionInject.swift"
],
"target_dependencies" : [
"URLScission",
"URLScissionCHooks"
],
"type" : "library"
},
{
"c99name" : "URLScissionCHooks",
"module_type" : "ClangTarget",
"name" : "URLScissionCHooks",
"path" : "Sources/URLScissionCHooks",
"product_memberships" : [
"URLScissionInject"
],
"sources" : [
"chooks.c"
],
"type" : "library"
},
{
"c99name" : "URLScission",
"module_type" : "SwiftTarget",
"name" : "URLScission",
"path" : "Sources/URLScission",
"product_memberships" : [
"URLScission",
"URLScissionInject"
],
"sources" : [
"Abstractions/FunctionHooker.swift",
"Abstractions/RuleSource.swift",
"DataMock.swift",
"Interception/InterceptionEngine.swift",
"Interception/Interceptor.swift",
"Interception/RuleConfig.swift",
"Interception/RuleStore.swift",
"Interception/URLScission+Engine.swift",
"Interception/URLSessionInterceptors.swift",
"Logger.swift",
"Mock.swift",
"MockAction.swift",
"MockClient.swift",
"MockParser.swift",
"MockSession.swift",
"MockSessionError.swift",
"MockSessionTask.swift",
"MockStorage.swift",
"URLSessionClient.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.