Build Information
Successful build of PushNotifications, reference master (a0e4d0), with Swift 6.1 for macOS (SPM) on 4 Oct 2026 04:35:02 UTC.
Swift 6 data race errors: 5
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: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/pusher/push-notifications-swift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/pusher/push-notifications-swift
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at a0e4d0b Merge pull request #192 from pusher/bump-ios-minimum-to-15
Cloned https://github.com/pusher/push-notifications-swift.git
Revision (git rev-parse @):
a0e4d0b6f2dc9d15d0e3248f79eac2806e4803d4
SUCCESS checkout https://github.com/pusher/push-notifications-swift.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/pusher/push-notifications-swift.git
https://github.com/pusher/push-notifications-swift.git
{
"dependencies" : [
{
"identity" : "nimble",
"requirement" : {
"range" : [
{
"lower_bound" : "9.2.0",
"upper_bound" : "10.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Quick/Nimble"
},
{
"identity" : "ohhttpstubs",
"requirement" : {
"range" : [
{
"lower_bound" : "9.1.0",
"upper_bound" : "10.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/AliSoftware/OHHTTPStubs"
},
{
"identity" : "swiftlint",
"requirement" : {
"range" : [
{
"lower_bound" : "0.43.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/realm/SwiftLint"
}
],
"manifest_display_name" : "PushNotifications",
"name" : "PushNotifications",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "15.0"
}
],
"products" : [
{
"name" : "PushNotifications",
"targets" : [
"PushNotifications"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "PushNotificationsTests",
"module_type" : "SwiftTarget",
"name" : "PushNotificationsTests",
"path" : "Tests",
"product_dependencies" : [
"Nimble",
"OHHTTPStubs",
"OHHTTPStubsSwift"
],
"sources" : [
"Extensions/Array+ContainsSameElements.swift",
"Integration/ApplicationStartTests.swift",
"Integration/ClearAllStateTest.swift",
"Integration/DeviceInterestsTest.swift",
"Integration/DeviceRegistrationTests.swift",
"Integration/MultipleClassInstanceSupportTest.swift",
"Integration/MultipleInstanceSupportTest.swift",
"Integration/ReportEventTypeTests.swift",
"Integration/SetUserIdTest.swift",
"Integration/StopTests.swift",
"Integration/TestAPIClientHelper.swift",
"Integration/TestHelper.swift",
"Unit/Extensions/ArrayContainsSameElementsTests.swift",
"Unit/Helpers/DeviceTokenHelperTests.swift",
"Unit/Helpers/InterestsMD5HashTests.swift",
"Unit/Models/AuthDataTests.swift",
"Unit/Models/ConstantsTests.swift",
"Unit/Models/FeatureFlagsTests.swift",
"Unit/Models/InterestsTests.swift",
"Unit/Models/PublishIdTests.swift",
"Unit/Models/ReasonTests.swift",
"Unit/Models/RegisterTests.swift",
"Unit/Models/SDKTests.swift",
"Unit/Models/SystemVersionTests.swift",
"Unit/Services/BeamsTokenProviderTests.swift",
"Unit/Services/DeviceStateStoreTests.swift",
"Unit/Services/DeviceTests.swift",
"Unit/Services/EventTypeHandlerTests.swift",
"Unit/Services/InstanceDeviceStateStoreTests.swift",
"Unit/Services/InterestPersistableTests.swift",
"Unit/Services/ServerSyncJobStoreTests.swift",
"Unit/Services/ServerSyncProcessHandlerTests.swift",
"Unit/Services/UserPersistableTests.swift"
],
"target_dependencies" : [
"PushNotifications"
],
"type" : "test"
},
{
"c99name" : "PushNotifications",
"module_type" : "SwiftTarget",
"name" : "PushNotifications",
"path" : "Sources",
"product_memberships" : [
"PushNotifications"
],
"sources" : [
"Extensions/Array+CalculateMD5Hash.swift",
"Extensions/Encodable+Encode.swift",
"Extensions/String+HexStringToData.swift",
"Extensions/URL+NetworkService.swift",
"Helpers/DeviceTokenHelper.swift",
"Helpers/MD5.swift",
"Models/AuthData.swift",
"Models/Constants.swift",
"Models/Device.swift",
"Models/FeatureFlags.swift",
"Models/HTTPMethod.swift",
"Models/InstanceId.swift",
"Models/InterestValidationError.swift",
"Models/Interests.swift",
"Models/Metadata.swift",
"Models/MultipleInvalidInterestsError.swift",
"Models/PersistenceConstants.swift",
"Models/PublishId.swift",
"Models/PushNotificationsAPIError.swift",
"Models/PushNotificationsError.swift",
"Models/PusherAlreadyRegisteredError.swift",
"Models/Reason.swift",
"Models/Register.swift",
"Models/RemoteNotificationType.swift",
"Models/SDK.swift",
"Models/ServerSyncEvent.swift",
"Models/ServerSyncJob.swift",
"Models/SystemVersion.swift",
"Models/Token.swift",
"Protocols/PropertyListReadable.swift",
"Protocols/PushNotificationsNetworkable.swift",
"Protocols/ReportEventType.swift",
"Protocols/RetryStrategy.swift",
"Protocols/TokenProvider.swift",
"PushNotifications.swift",
"PushNotificationsStatic.swift",
"Services/BeamsTokenProvider.swift",
"Services/DeviceStateStore.swift",
"Services/EventTypeHandler.swift",
"Services/NetworkService.swift",
"Services/ServerSyncEventHandler.swift",
"Services/ServerSyncJobStore.swift",
"Services/ServerSyncProcessHandler.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
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
[1/1] Compiling plugin SwiftLintCommandPlugin
[2/2] Compiling plugin SwiftLintBuildToolPlugin
[3/3] Compiling plugin GenerateManual
[4/4] Compiling plugin GenerateDoccReference
Building for debugging...
[4/6] Write sources
[5/6] Write swift-version-2F0A5646E1D333AE.txt
[7/46] Emitting module PushNotifications
/Users/admin/builder/spi-builder-workspace/Sources/Models/Metadata.swift:8:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | let macosVersion: String?
7 |
8 | static var current: Metadata = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | let sdkVersion = SDK.version
10 | let systemVersion = SystemVersion.version
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:17:24: warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 | }
16 |
17 | private static var instance: PushNotifications?
| |- warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | static var tokenProvider = [String: TokenProvider]()
19 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:18:16: warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private static var instance: PushNotifications?
18 | static var tokenProvider = [String: TokenProvider]()
| |- warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tokenProvider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tokenProvider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:6:16: warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | static let serverSyncEventHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncEventHandlersQueue")
6 | static var serverSyncEventHandlers = [String: ServerSyncEventHandler]()
| |- warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncEventHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncEventHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | static func obtain(instanceId: String) -> ServerSyncEventHandler {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:5:24: warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
3 | class ServerSyncProcessHandler {
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
| |- warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 | static func obtain(instanceId: String, getTokenProvider: @escaping () -> TokenProvider?, handleServerSyncEvent: @escaping (ServerSyncEvent) -> Void) -> ServerSyncProcessHandler {
7 | return serverSyncHandlersQueue.sync {
[8/50] Compiling PushNotifications MultipleInvalidInterestsError.swift
[9/50] Compiling PushNotifications PersistenceConstants.swift
[10/50] Compiling PushNotifications PublishId.swift
[11/50] Compiling PushNotifications PushNotificationsAPIError.swift
[12/50] Compiling PushNotifications NetworkService.swift
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:236:17: warning: mutation of captured var 'result' in concurrently-executing code
234 | let httpURLResponse = response as? HTTPURLResponse
235 | else {
236 | result = .failure(.genericError(reason: "Error!"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
237 | semaphore.signal()
238 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:242:17: warning: mutation of captured var 'result' in concurrently-executing code
240 |
241 | if error != nil {
242 | result = .failure(.genericError(reason: "\(error!.localizedDescription)"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
243 | semaphore.signal()
244 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:250:17: warning: mutation of captured var 'result' in concurrently-executing code
248 | switch statusCode {
249 | case 200..<300:
250 | result = .success(data)
| `- warning: mutation of captured var 'result' in concurrently-executing code
251 |
252 | case 400:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:255:17: warning: mutation of captured var 'result' in concurrently-executing code
253 | let reason = try? JSONDecoder().decode(Reason.self, from: data)
254 |
255 | result = .failure(.badRequest(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
256 |
257 | case 401, 403:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:262:21: warning: mutation of captured var 'result' in concurrently-executing code
260 | // Hack, until we add error codes in the server.
261 | if reason?.description.contains("device token") ?? false {
262 | result = .failure(.badDeviceToken(reason: reason!.description))
| `- warning: mutation of captured var 'result' in concurrently-executing code
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:264:21: warning: mutation of captured var 'result' in concurrently-executing code
262 | result = .failure(.badDeviceToken(reason: reason!.description))
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
265 | }
266 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:268:17: warning: mutation of captured var 'result' in concurrently-executing code
266 |
267 | case 404:
268 | result = .failure(.deviceNotFound)
| `- warning: mutation of captured var 'result' in concurrently-executing code
269 |
270 | default:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:274:21: warning: mutation of captured var 'result' in concurrently-executing code
272 |
273 | if reason?.description.elementsEqual("Device could not be created") ?? false {
274 | result = .failure(.couldNotCreateDevice)
| `- warning: mutation of captured var 'result' in concurrently-executing code
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:276:21: warning: mutation of captured var 'result' in concurrently-executing code
274 | result = .failure(.couldNotCreateDevice)
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
277 | }
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:6:16: warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | static let serverSyncEventHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncEventHandlersQueue")
6 | static var serverSyncEventHandlers = [String: ServerSyncEventHandler]()
| |- warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncEventHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncEventHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | static func obtain(instanceId: String) -> ServerSyncEventHandler {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:5:24: warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
3 | class ServerSyncProcessHandler {
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
| |- warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 | static func obtain(instanceId: String, getTokenProvider: @escaping () -> TokenProvider?, handleServerSyncEvent: @escaping (ServerSyncEvent) -> Void) -> ServerSyncProcessHandler {
7 | return serverSyncHandlersQueue.sync {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:21: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:55: warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:13: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:34: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:17: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:51: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:36:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
34 | switch event {
35 | case .interestsChangedEvent(let interests):
36 | self.interestsChangedDelegates.forEach({ delegate in
| |- 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
37 | if let delegate = delegate() {
38 | delegate.interestsSetOnDeviceDidChange(interests: interests)
[13/50] Compiling PushNotifications ServerSyncEventHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:236:17: warning: mutation of captured var 'result' in concurrently-executing code
234 | let httpURLResponse = response as? HTTPURLResponse
235 | else {
236 | result = .failure(.genericError(reason: "Error!"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
237 | semaphore.signal()
238 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:242:17: warning: mutation of captured var 'result' in concurrently-executing code
240 |
241 | if error != nil {
242 | result = .failure(.genericError(reason: "\(error!.localizedDescription)"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
243 | semaphore.signal()
244 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:250:17: warning: mutation of captured var 'result' in concurrently-executing code
248 | switch statusCode {
249 | case 200..<300:
250 | result = .success(data)
| `- warning: mutation of captured var 'result' in concurrently-executing code
251 |
252 | case 400:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:255:17: warning: mutation of captured var 'result' in concurrently-executing code
253 | let reason = try? JSONDecoder().decode(Reason.self, from: data)
254 |
255 | result = .failure(.badRequest(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
256 |
257 | case 401, 403:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:262:21: warning: mutation of captured var 'result' in concurrently-executing code
260 | // Hack, until we add error codes in the server.
261 | if reason?.description.contains("device token") ?? false {
262 | result = .failure(.badDeviceToken(reason: reason!.description))
| `- warning: mutation of captured var 'result' in concurrently-executing code
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:264:21: warning: mutation of captured var 'result' in concurrently-executing code
262 | result = .failure(.badDeviceToken(reason: reason!.description))
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
265 | }
266 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:268:17: warning: mutation of captured var 'result' in concurrently-executing code
266 |
267 | case 404:
268 | result = .failure(.deviceNotFound)
| `- warning: mutation of captured var 'result' in concurrently-executing code
269 |
270 | default:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:274:21: warning: mutation of captured var 'result' in concurrently-executing code
272 |
273 | if reason?.description.elementsEqual("Device could not be created") ?? false {
274 | result = .failure(.couldNotCreateDevice)
| `- warning: mutation of captured var 'result' in concurrently-executing code
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:276:21: warning: mutation of captured var 'result' in concurrently-executing code
274 | result = .failure(.couldNotCreateDevice)
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
277 | }
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:6:16: warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | static let serverSyncEventHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncEventHandlersQueue")
6 | static var serverSyncEventHandlers = [String: ServerSyncEventHandler]()
| |- warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncEventHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncEventHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | static func obtain(instanceId: String) -> ServerSyncEventHandler {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:5:24: warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
3 | class ServerSyncProcessHandler {
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
| |- warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 | static func obtain(instanceId: String, getTokenProvider: @escaping () -> TokenProvider?, handleServerSyncEvent: @escaping (ServerSyncEvent) -> Void) -> ServerSyncProcessHandler {
7 | return serverSyncHandlersQueue.sync {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:21: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:55: warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:13: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:34: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:17: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:51: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:36:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
34 | switch event {
35 | case .interestsChangedEvent(let interests):
36 | self.interestsChangedDelegates.forEach({ delegate in
| |- 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
37 | if let delegate = delegate() {
38 | delegate.interestsSetOnDeviceDidChange(interests: interests)
[14/50] Compiling PushNotifications ServerSyncJobStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:236:17: warning: mutation of captured var 'result' in concurrently-executing code
234 | let httpURLResponse = response as? HTTPURLResponse
235 | else {
236 | result = .failure(.genericError(reason: "Error!"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
237 | semaphore.signal()
238 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:242:17: warning: mutation of captured var 'result' in concurrently-executing code
240 |
241 | if error != nil {
242 | result = .failure(.genericError(reason: "\(error!.localizedDescription)"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
243 | semaphore.signal()
244 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:250:17: warning: mutation of captured var 'result' in concurrently-executing code
248 | switch statusCode {
249 | case 200..<300:
250 | result = .success(data)
| `- warning: mutation of captured var 'result' in concurrently-executing code
251 |
252 | case 400:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:255:17: warning: mutation of captured var 'result' in concurrently-executing code
253 | let reason = try? JSONDecoder().decode(Reason.self, from: data)
254 |
255 | result = .failure(.badRequest(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
256 |
257 | case 401, 403:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:262:21: warning: mutation of captured var 'result' in concurrently-executing code
260 | // Hack, until we add error codes in the server.
261 | if reason?.description.contains("device token") ?? false {
262 | result = .failure(.badDeviceToken(reason: reason!.description))
| `- warning: mutation of captured var 'result' in concurrently-executing code
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:264:21: warning: mutation of captured var 'result' in concurrently-executing code
262 | result = .failure(.badDeviceToken(reason: reason!.description))
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
265 | }
266 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:268:17: warning: mutation of captured var 'result' in concurrently-executing code
266 |
267 | case 404:
268 | result = .failure(.deviceNotFound)
| `- warning: mutation of captured var 'result' in concurrently-executing code
269 |
270 | default:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:274:21: warning: mutation of captured var 'result' in concurrently-executing code
272 |
273 | if reason?.description.elementsEqual("Device could not be created") ?? false {
274 | result = .failure(.couldNotCreateDevice)
| `- warning: mutation of captured var 'result' in concurrently-executing code
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:276:21: warning: mutation of captured var 'result' in concurrently-executing code
274 | result = .failure(.couldNotCreateDevice)
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
277 | }
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:6:16: warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | static let serverSyncEventHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncEventHandlersQueue")
6 | static var serverSyncEventHandlers = [String: ServerSyncEventHandler]()
| |- warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncEventHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncEventHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | static func obtain(instanceId: String) -> ServerSyncEventHandler {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:5:24: warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
3 | class ServerSyncProcessHandler {
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
| |- warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 | static func obtain(instanceId: String, getTokenProvider: @escaping () -> TokenProvider?, handleServerSyncEvent: @escaping (ServerSyncEvent) -> Void) -> ServerSyncProcessHandler {
7 | return serverSyncHandlersQueue.sync {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:21: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:55: warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:13: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:34: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:17: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:51: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:36:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
34 | switch event {
35 | case .interestsChangedEvent(let interests):
36 | self.interestsChangedDelegates.forEach({ delegate in
| |- 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
37 | if let delegate = delegate() {
38 | delegate.interestsSetOnDeviceDidChange(interests: interests)
[15/50] Compiling PushNotifications ServerSyncProcessHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:236:17: warning: mutation of captured var 'result' in concurrently-executing code
234 | let httpURLResponse = response as? HTTPURLResponse
235 | else {
236 | result = .failure(.genericError(reason: "Error!"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
237 | semaphore.signal()
238 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:242:17: warning: mutation of captured var 'result' in concurrently-executing code
240 |
241 | if error != nil {
242 | result = .failure(.genericError(reason: "\(error!.localizedDescription)"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
243 | semaphore.signal()
244 | return
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:250:17: warning: mutation of captured var 'result' in concurrently-executing code
248 | switch statusCode {
249 | case 200..<300:
250 | result = .success(data)
| `- warning: mutation of captured var 'result' in concurrently-executing code
251 |
252 | case 400:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:255:17: warning: mutation of captured var 'result' in concurrently-executing code
253 | let reason = try? JSONDecoder().decode(Reason.self, from: data)
254 |
255 | result = .failure(.badRequest(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
256 |
257 | case 401, 403:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:262:21: warning: mutation of captured var 'result' in concurrently-executing code
260 | // Hack, until we add error codes in the server.
261 | if reason?.description.contains("device token") ?? false {
262 | result = .failure(.badDeviceToken(reason: reason!.description))
| `- warning: mutation of captured var 'result' in concurrently-executing code
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:264:21: warning: mutation of captured var 'result' in concurrently-executing code
262 | result = .failure(.badDeviceToken(reason: reason!.description))
263 | } else {
264 | result = .failure(.badJWT(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
265 | }
266 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:268:17: warning: mutation of captured var 'result' in concurrently-executing code
266 |
267 | case 404:
268 | result = .failure(.deviceNotFound)
| `- warning: mutation of captured var 'result' in concurrently-executing code
269 |
270 | default:
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:274:21: warning: mutation of captured var 'result' in concurrently-executing code
272 |
273 | if reason?.description.elementsEqual("Device could not be created") ?? false {
274 | result = .failure(.couldNotCreateDevice)
| `- warning: mutation of captured var 'result' in concurrently-executing code
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
/Users/admin/builder/spi-builder-workspace/Sources/Services/NetworkService.swift:276:21: warning: mutation of captured var 'result' in concurrently-executing code
274 | result = .failure(.couldNotCreateDevice)
275 | } else {
276 | result = .failure(.genericError(reason: reason?.description ?? "Unknown API error"))
| `- warning: mutation of captured var 'result' in concurrently-executing code
277 | }
278 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:6:16: warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | static let serverSyncEventHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncEventHandlersQueue")
6 | static var serverSyncEventHandlers = [String: ServerSyncEventHandler]()
| |- warning: static property 'serverSyncEventHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncEventHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncEventHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | static func obtain(instanceId: String) -> ServerSyncEventHandler {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:5:24: warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
3 | class ServerSyncProcessHandler {
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
| |- warning: static property 'serverSyncHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'serverSyncHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'serverSyncHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 | static func obtain(instanceId: String, getTokenProvider: @escaping () -> TokenProvider?, handleServerSyncEvent: @escaping (ServerSyncEvent) -> Void) -> ServerSyncProcessHandler {
7 | return serverSyncHandlersQueue.sync {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:21: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:60:55: warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
58 | default:
59 | self.handleMessageQueue.async {
60 | self.handleMessage(serverSyncJob: job)
| `- warning: capture of 'job' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:13: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:68:34: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
66 | func sendMessage(serverSyncJob: ServerSyncJob) {
67 | self.sendMessageQueue.async {
68 | self.jobQueue.append(serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:17: warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
1 | import Foundation
2 |
3 | class ServerSyncProcessHandler {
| `- note: class 'ServerSyncProcessHandler' does not conform to the 'Sendable' protocol
4 | private static let serverSyncHandlersQueue = DispatchQueue(label: "com.pusher.beams.serverSyncHandlersQueue")
5 | private static var serverSyncHandlers = [String: ServerSyncProcessHandler]()
:
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'self' with non-sendable type 'ServerSyncProcessHandler' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncProcessHandler.swift:71:51: warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
69 |
70 | self.handleMessageQueue.async {
71 | self.handleMessage(serverSyncJob: serverSyncJob)
| `- warning: capture of 'serverSyncJob' with non-sendable type 'ServerSyncJob' in a '@Sendable' closure
72 | }
73 | }
/Users/admin/builder/spi-builder-workspace/Sources/Models/ServerSyncJob.swift:3:6: note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | enum ServerSyncJob {
| `- note: consider making enum 'ServerSyncJob' conform to the 'Sendable' protocol
4 | case startJob(instanceId: String, token: String)
5 | case refreshTokenJob(newToken: String)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ServerSyncEventHandler.swift:36:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
34 | switch event {
35 | case .interestsChangedEvent(let interests):
36 | self.interestsChangedDelegates.forEach({ delegate in
| |- 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
37 | if let delegate = delegate() {
38 | delegate.interestsSetOnDeviceDidChange(interests: interests)
[16/50] Compiling PushNotifications Array+CalculateMD5Hash.swift
[17/50] Compiling PushNotifications Encodable+Encode.swift
[18/50] Compiling PushNotifications String+HexStringToData.swift
[19/50] Compiling PushNotifications URL+NetworkService.swift
[20/50] Compiling PushNotifications DeviceTokenHelper.swift
[21/50] Compiling PushNotifications PushNotificationsError.swift
[22/50] Compiling PushNotifications PusherAlreadyRegisteredError.swift
[23/50] Compiling PushNotifications Reason.swift
[24/50] Compiling PushNotifications Register.swift
[25/50] Compiling PushNotifications SystemVersion.swift
[26/50] Compiling PushNotifications Token.swift
[27/50] Compiling PushNotifications PropertyListReadable.swift
[28/50] Compiling PushNotifications PushNotificationsNetworkable.swift
[29/50] Compiling PushNotifications HTTPMethod.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/Metadata.swift:8:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | let macosVersion: String?
7 |
8 | static var current: Metadata = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | let sdkVersion = SDK.version
10 | let systemVersion = SystemVersion.version
[30/50] Compiling PushNotifications InstanceId.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/Metadata.swift:8:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | let macosVersion: String?
7 |
8 | static var current: Metadata = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | let sdkVersion = SDK.version
10 | let systemVersion = SystemVersion.version
[31/50] Compiling PushNotifications InterestValidationError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/Metadata.swift:8:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | let macosVersion: String?
7 |
8 | static var current: Metadata = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | let sdkVersion = SDK.version
10 | let systemVersion = SystemVersion.version
[32/50] Compiling PushNotifications Interests.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/Metadata.swift:8:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | let macosVersion: String?
7 |
8 | static var current: Metadata = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | let sdkVersion = SDK.version
10 | let systemVersion = SystemVersion.version
[33/50] Compiling PushNotifications Metadata.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/Metadata.swift:8:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | let macosVersion: String?
7 |
8 | static var current: Metadata = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | let sdkVersion = SDK.version
10 | let systemVersion = SystemVersion.version
[34/50] Compiling PushNotifications PushNotificationsStatic.swift
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:17:24: warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 | }
16 |
17 | private static var instance: PushNotifications?
| |- warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | static var tokenProvider = [String: TokenProvider]()
19 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:18:16: warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private static var instance: PushNotifications?
18 | static var tokenProvider = [String: TokenProvider]()
| |- warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tokenProvider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tokenProvider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | /**
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:30: warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
AppKit.NSApplication.registerForRemoteNotifications:3:24: note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
1 | class NSApplication {
2 | @available(macOS 10.7, *)
3 | @MainActor open func registerForRemoteNotifications(matching types: NSApplication.RemoteNotificationType)}
| |- note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:23: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/BeamsTokenProvider.swift:51:24: warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
49 | urlSession.dataTask(with: urlRequest, completionHandler: { data, response, error in
50 | guard let data = data else {
51 | return completion("", TokenProviderError.error("[PushNotifications] - BeamsTokenProvider: Token is nil"))
| |- warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | }
53 | guard let httpURLResponse = response as? HTTPURLResponse else {
[35/50] Compiling PushNotifications BeamsTokenProvider.swift
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:17:24: warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 | }
16 |
17 | private static var instance: PushNotifications?
| |- warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | static var tokenProvider = [String: TokenProvider]()
19 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:18:16: warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private static var instance: PushNotifications?
18 | static var tokenProvider = [String: TokenProvider]()
| |- warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tokenProvider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tokenProvider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | /**
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:30: warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
AppKit.NSApplication.registerForRemoteNotifications:3:24: note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
1 | class NSApplication {
2 | @available(macOS 10.7, *)
3 | @MainActor open func registerForRemoteNotifications(matching types: NSApplication.RemoteNotificationType)}
| |- note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:23: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/BeamsTokenProvider.swift:51:24: warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
49 | urlSession.dataTask(with: urlRequest, completionHandler: { data, response, error in
50 | guard let data = data else {
51 | return completion("", TokenProviderError.error("[PushNotifications] - BeamsTokenProvider: Token is nil"))
| |- warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | }
53 | guard let httpURLResponse = response as? HTTPURLResponse else {
[36/50] Compiling PushNotifications DeviceStateStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:17:24: warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 | }
16 |
17 | private static var instance: PushNotifications?
| |- warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | static var tokenProvider = [String: TokenProvider]()
19 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:18:16: warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private static var instance: PushNotifications?
18 | static var tokenProvider = [String: TokenProvider]()
| |- warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tokenProvider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tokenProvider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | /**
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:30: warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
AppKit.NSApplication.registerForRemoteNotifications:3:24: note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
1 | class NSApplication {
2 | @available(macOS 10.7, *)
3 | @MainActor open func registerForRemoteNotifications(matching types: NSApplication.RemoteNotificationType)}
| |- note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:23: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/BeamsTokenProvider.swift:51:24: warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
49 | urlSession.dataTask(with: urlRequest, completionHandler: { data, response, error in
50 | guard let data = data else {
51 | return completion("", TokenProviderError.error("[PushNotifications] - BeamsTokenProvider: Token is nil"))
| |- warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | }
53 | guard let httpURLResponse = response as? HTTPURLResponse else {
[37/50] Compiling PushNotifications EventTypeHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:17:24: warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 | }
16 |
17 | private static var instance: PushNotifications?
| |- warning: static property 'instance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | static var tokenProvider = [String: TokenProvider]()
19 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:18:16: warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private static var instance: PushNotifications?
18 | static var tokenProvider = [String: TokenProvider]()
| |- warning: static property 'tokenProvider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tokenProvider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tokenProvider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | /**
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:30: warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: call to main actor-isolated instance method 'registerForRemoteNotifications(matching:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
AppKit.NSApplication.registerForRemoteNotifications:3:24: note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
1 | class NSApplication {
2 | @available(macOS 10.7, *)
3 | @MainActor open func registerForRemoteNotifications(matching types: NSApplication.RemoteNotificationType)}
| |- note: calls to instance method 'registerForRemoteNotifications(matching:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PushNotificationsStatic.swift:90:23: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
87 | }
88 | #elseif os(OSX)
89 | private static func registerForPushNotifications(options: NSApplication.RemoteNotificationType) {
| `- note: add '@MainActor' to make static method 'registerForPushNotifications(options:)' part of global actor 'MainActor'
90 | NSApplication.shared.registerForRemoteNotifications(matching: options)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
91 | }
92 | #endif
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/BeamsTokenProvider.swift:51:24: warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
49 | urlSession.dataTask(with: urlRequest, completionHandler: { data, response, error in
50 | guard let data = data else {
51 | return completion("", TokenProviderError.error("[PushNotifications] - BeamsTokenProvider: Token is nil"))
| |- warning: capture of 'completion' with non-sendable type '(String, (any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | }
53 | guard let httpURLResponse = response as? HTTPURLResponse else {
[38/50] Compiling PushNotifications MD5.swift
[39/50] Compiling PushNotifications AuthData.swift
[40/50] Compiling PushNotifications Constants.swift
[41/50] Compiling PushNotifications Device.swift
[42/50] Compiling PushNotifications FeatureFlags.swift
[43/50] Compiling PushNotifications ReportEventType.swift
[44/50] Compiling PushNotifications RetryStrategy.swift
[45/50] Compiling PushNotifications TokenProvider.swift
[46/50] Compiling PushNotifications PushNotifications.swift
[47/50] Compiling PushNotifications RemoteNotificationType.swift
[48/50] Compiling PushNotifications SDK.swift
[49/50] Compiling PushNotifications ServerSyncEvent.swift
[50/50] Compiling PushNotifications ServerSyncJob.swift
Build complete! (215.27s)
Fetching https://github.com/AliSoftware/OHHTTPStubs
Fetching https://github.com/realm/SwiftLint
Fetching https://github.com/Quick/Nimble
[1/7900] Fetching ohhttpstubs
[1186/27886] Fetching ohhttpstubs, nimble
[11099/193800] Fetching ohhttpstubs, nimble, swiftlint
Fetched https://github.com/AliSoftware/OHHTTPStubs from cache (174.38s)
Fetched https://github.com/realm/SwiftLint from cache (174.38s)
Fetched https://github.com/Quick/Nimble from cache (174.38s)
Computing version for https://github.com/AliSoftware/OHHTTPStubs
Computed https://github.com/AliSoftware/OHHTTPStubs at 9.1.0 (175.25s)
Computing version for https://github.com/Quick/Nimble
Computed https://github.com/Quick/Nimble at 9.2.1 (0.60s)
Fetching https://github.com/mattgallagher/CwlPreconditionTesting.git
[1/1257] Fetching cwlpreconditiontesting
Fetched https://github.com/mattgallagher/CwlPreconditionTesting.git from cache (0.94s)
Computing version for https://github.com/mattgallagher/CwlPreconditionTesting.git
Computed https://github.com/mattgallagher/CwlPreconditionTesting.git at 2.2.2 (1.54s)
Fetching https://github.com/mattgallagher/CwlCatchException.git
[1/460] Fetching cwlcatchexception
Fetched https://github.com/mattgallagher/CwlCatchException.git from cache (0.77s)
Computing version for https://github.com/mattgallagher/CwlCatchException.git
Computed https://github.com/mattgallagher/CwlCatchException.git at 2.2.1 (1.41s)
Computing version for https://github.com/realm/SwiftLint
Computed https://github.com/realm/SwiftLint at 0.65.1 (0.61s)
Fetching https://github.com/ileitch/swift-filename-matcher
Fetching https://github.com/JohnSundell/CollectionConcurrencyKit.git
Fetching https://github.com/krzyzanowskim/CryptoSwift.git
Fetching https://github.com/scottrhoyt/SwiftyTextTable.git
Fetching https://github.com/jpsim/SourceKitten.git
Fetching https://github.com/jpsim/Yams.git from cache
Fetching https://github.com/swiftlang/swift-syntax.git from cache
[1/929] Fetching swiftytexttable
[11/1030] Fetching swiftytexttable, collectionconcurrencykit
[14/1093] Fetching swiftytexttable, collectionconcurrencykit, swift-filename-matcher
[221/14532] Fetching swiftytexttable, collectionconcurrencykit, swift-filename-matcher, cryptoswift
[579/30910] Fetching swiftytexttable, collectionconcurrencykit, swift-filename-matcher, cryptoswift, sourcekitten
Fetched https://github.com/JohnSundell/CollectionConcurrencyKit.git from cache (1.02s)
[1963/30809] Fetching swiftytexttable, swift-filename-matcher, cryptoswift, sourcekitten
Fetching https://github.com/apple/swift-argument-parser.git from cache
Fetched https://github.com/scottrhoyt/SwiftyTextTable.git from cache (1.47s)
[7812/29880] Fetching swift-filename-matcher, cryptoswift, sourcekitten
Fetched https://github.com/jpsim/SourceKitten.git from cache (2.82s)
Fetched https://github.com/krzyzanowskim/CryptoSwift.git from cache (2.82s)
Fetched https://github.com/ileitch/swift-filename-matcher from cache (2.82s)
Fetched https://github.com/jpsim/Yams.git from cache (2.86s)
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.85s)
Fetched https://github.com/swiftlang/swift-syntax.git from cache (2.98s)
Computing version for https://github.com/ileitch/swift-filename-matcher
Computed https://github.com/ileitch/swift-filename-matcher at 2.0.1 (3.65s)
Computing version for https://github.com/JohnSundell/CollectionConcurrencyKit.git
Computed https://github.com/JohnSundell/CollectionConcurrencyKit.git at 0.2.0 (0.59s)
Computing version for https://github.com/scottrhoyt/SwiftyTextTable.git
Computed https://github.com/scottrhoyt/SwiftyTextTable.git at 0.9.0 (2.45s)
Computing version for https://github.com/krzyzanowskim/CryptoSwift.git
Computed https://github.com/krzyzanowskim/CryptoSwift.git at 1.10.0 (0.58s)
Computing version for https://github.com/jpsim/SourceKitten.git
Computed https://github.com/jpsim/SourceKitten.git at 0.39.0 (0.59s)
Fetching https://github.com/drmohundro/SWXMLHash.git
[1/2879] Fetching swxmlhash
Fetched https://github.com/drmohundro/SWXMLHash.git from cache (1.10s)
Computing version for https://github.com/drmohundro/SWXMLHash.git
Computed https://github.com/drmohundro/SWXMLHash.git at 7.0.2 (1.72s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 6.2.2 (0.51s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.8.2 (0.50s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 605.0.0-prerelease-2026-06-26 (0.71s)
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 6.2.2
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 605.0.0-prerelease-2026-06-26
Creating working copy for https://github.com/Quick/Nimble
Working copy of https://github.com/Quick/Nimble resolved at 9.2.1
Creating working copy for https://github.com/drmohundro/SWXMLHash.git
Working copy of https://github.com/drmohundro/SWXMLHash.git resolved at 7.0.2
Creating working copy for https://github.com/mattgallagher/CwlPreconditionTesting.git
Working copy of https://github.com/mattgallagher/CwlPreconditionTesting.git resolved at 2.2.2
Creating working copy for https://github.com/AliSoftware/OHHTTPStubs
Working copy of https://github.com/AliSoftware/OHHTTPStubs resolved at 9.1.0
Creating working copy for https://github.com/ileitch/swift-filename-matcher
Working copy of https://github.com/ileitch/swift-filename-matcher resolved at 2.0.1
Creating working copy for https://github.com/realm/SwiftLint
Working copy of https://github.com/realm/SwiftLint resolved at 0.65.1
Creating working copy for https://github.com/krzyzanowskim/CryptoSwift.git
Working copy of https://github.com/krzyzanowskim/CryptoSwift.git resolved at 1.10.0
Creating working copy for https://github.com/scottrhoyt/SwiftyTextTable.git
Working copy of https://github.com/scottrhoyt/SwiftyTextTable.git resolved at 0.9.0
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.8.2
Creating working copy for https://github.com/JohnSundell/CollectionConcurrencyKit.git
Working copy of https://github.com/JohnSundell/CollectionConcurrencyKit.git resolved at 0.2.0
Creating working copy for https://github.com/mattgallagher/CwlCatchException.git
Working copy of https://github.com/mattgallagher/CwlCatchException.git resolved at 2.2.1
Creating working copy for https://github.com/jpsim/SourceKitten.git
Working copy of https://github.com/jpsim/SourceKitten.git resolved at 0.39.0
Downloading binary artifact https://github.com/realm/SwiftLint/releases/download/0.65.1/SwiftLintBinary.artifactbundle.zip
[16375/75992853] Downloading https://github.com/realm/SwiftLint/releases/download/0.65.1/SwiftLintBinary.artifactbundle.zip
Downloaded https://github.com/realm/SwiftLint/releases/download/0.65.1/SwiftLintBinary.artifactbundle.zip (3.62s)
Build complete.
{
"dependencies" : [
{
"identity" : "nimble",
"requirement" : {
"range" : [
{
"lower_bound" : "9.2.0",
"upper_bound" : "10.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Quick/Nimble"
},
{
"identity" : "ohhttpstubs",
"requirement" : {
"range" : [
{
"lower_bound" : "9.1.0",
"upper_bound" : "10.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/AliSoftware/OHHTTPStubs"
},
{
"identity" : "swiftlint",
"requirement" : {
"range" : [
{
"lower_bound" : "0.43.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/realm/SwiftLint"
}
],
"manifest_display_name" : "PushNotifications",
"name" : "PushNotifications",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "15.0"
}
],
"products" : [
{
"name" : "PushNotifications",
"targets" : [
"PushNotifications"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "PushNotificationsTests",
"module_type" : "SwiftTarget",
"name" : "PushNotificationsTests",
"path" : "Tests",
"product_dependencies" : [
"Nimble",
"OHHTTPStubs",
"OHHTTPStubsSwift"
],
"sources" : [
"Extensions/Array+ContainsSameElements.swift",
"Integration/ApplicationStartTests.swift",
"Integration/ClearAllStateTest.swift",
"Integration/DeviceInterestsTest.swift",
"Integration/DeviceRegistrationTests.swift",
"Integration/MultipleClassInstanceSupportTest.swift",
"Integration/MultipleInstanceSupportTest.swift",
"Integration/ReportEventTypeTests.swift",
"Integration/SetUserIdTest.swift",
"Integration/StopTests.swift",
"Integration/TestAPIClientHelper.swift",
"Integration/TestHelper.swift",
"Unit/Extensions/ArrayContainsSameElementsTests.swift",
"Unit/Helpers/DeviceTokenHelperTests.swift",
"Unit/Helpers/InterestsMD5HashTests.swift",
"Unit/Models/AuthDataTests.swift",
"Unit/Models/ConstantsTests.swift",
"Unit/Models/FeatureFlagsTests.swift",
"Unit/Models/InterestsTests.swift",
"Unit/Models/PublishIdTests.swift",
"Unit/Models/ReasonTests.swift",
"Unit/Models/RegisterTests.swift",
"Unit/Models/SDKTests.swift",
"Unit/Models/SystemVersionTests.swift",
"Unit/Services/BeamsTokenProviderTests.swift",
"Unit/Services/DeviceStateStoreTests.swift",
"Unit/Services/DeviceTests.swift",
"Unit/Services/EventTypeHandlerTests.swift",
"Unit/Services/InstanceDeviceStateStoreTests.swift",
"Unit/Services/InterestPersistableTests.swift",
"Unit/Services/ServerSyncJobStoreTests.swift",
"Unit/Services/ServerSyncProcessHandlerTests.swift",
"Unit/Services/UserPersistableTests.swift"
],
"target_dependencies" : [
"PushNotifications"
],
"type" : "test"
},
{
"c99name" : "PushNotifications",
"module_type" : "SwiftTarget",
"name" : "PushNotifications",
"path" : "Sources",
"product_memberships" : [
"PushNotifications"
],
"sources" : [
"Extensions/Array+CalculateMD5Hash.swift",
"Extensions/Encodable+Encode.swift",
"Extensions/String+HexStringToData.swift",
"Extensions/URL+NetworkService.swift",
"Helpers/DeviceTokenHelper.swift",
"Helpers/MD5.swift",
"Models/AuthData.swift",
"Models/Constants.swift",
"Models/Device.swift",
"Models/FeatureFlags.swift",
"Models/HTTPMethod.swift",
"Models/InstanceId.swift",
"Models/InterestValidationError.swift",
"Models/Interests.swift",
"Models/Metadata.swift",
"Models/MultipleInvalidInterestsError.swift",
"Models/PersistenceConstants.swift",
"Models/PublishId.swift",
"Models/PushNotificationsAPIError.swift",
"Models/PushNotificationsError.swift",
"Models/PusherAlreadyRegisteredError.swift",
"Models/Reason.swift",
"Models/Register.swift",
"Models/RemoteNotificationType.swift",
"Models/SDK.swift",
"Models/ServerSyncEvent.swift",
"Models/ServerSyncJob.swift",
"Models/SystemVersion.swift",
"Models/Token.swift",
"Protocols/PropertyListReadable.swift",
"Protocols/PushNotificationsNetworkable.swift",
"Protocols/ReportEventType.swift",
"Protocols/RetryStrategy.swift",
"Protocols/TokenProvider.swift",
"PushNotifications.swift",
"PushNotificationsStatic.swift",
"Services/BeamsTokenProvider.swift",
"Services/DeviceStateStore.swift",
"Services/EventTypeHandler.swift",
"Services/NetworkService.swift",
"Services/ServerSyncEventHandler.swift",
"Services/ServerSyncJobStore.swift",
"Services/ServerSyncProcessHandler.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.