Build Information
Failed to build OpenPanel, reference 1.0.0 (d8181e), with Swift 6.1 for macOS (SPM) on 8 Jan 2026 08:45:15 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Openpanel-dev/swift-sdk.git
Reference: 1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Openpanel-dev/swift-sdk
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at d8181eb add better check for extensions
Cloned https://github.com/Openpanel-dev/swift-sdk.git
Revision (git rev-parse @):
d8181ebb986acce3e3bb177a93cc484241ba0414
SUCCESS checkout https://github.com/Openpanel-dev/swift-sdk.git at 1.0.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/Openpanel-dev/swift-sdk.git
https://github.com/Openpanel-dev/swift-sdk.git
{
"dependencies" : [
],
"manifest_display_name" : "OpenPanel",
"name" : "OpenPanel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "OpenPanel",
"targets" : [
"OpenPanel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "OpenPanel",
"module_type" : "SwiftTarget",
"name" : "OpenPanel",
"path" : "Sources/OpenPanel",
"product_memberships" : [
"OpenPanel"
],
"sources" : [
"OpenPanel.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/4] Emitting module OpenPanel
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:259:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'OpenPanel' may have shared mutable state; this is an error in the Swift 6 language mode
256 | // MARK: - OpenPanel Class
257 |
258 | public class OpenPanel {
| `- note: class 'OpenPanel' does not conform to the 'Sendable' protocol
259 | public static let shared = OpenPanel()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'OpenPanel' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
260 |
261 | private let api: Api
[4/4] Compiling OpenPanel OpenPanel.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:259:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'OpenPanel' may have shared mutable state; this is an error in the Swift 6 language mode
256 | // MARK: - OpenPanel Class
257 |
258 | public class OpenPanel {
| `- note: class 'OpenPanel' does not conform to the 'Sendable' protocol
259 | public static let shared = OpenPanel()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'OpenPanel' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
260 |
261 | private let api: Api
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:29:27: warning: call to main actor-isolated initializer 'init(frame:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 | }
26 |
27 | private static func getiOSUserAgent() -> String {
| `- note: add '@MainActor' to make static method 'getiOSUserAgent()' part of global actor 'MainActor'
28 | if !isRunningInExtension() {
29 | let webView = WKWebView(frame: .zero)
| `- warning: call to main actor-isolated initializer 'init(frame:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
30 | var userAgent = ""
31 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:83:1: note: calls to initializer 'init(frame:)' from outside of its actor context are implicitly asynchronous
81 | @interface NSView : NSResponder <NSAnimatablePropertyContainer, NSUserInterfaceItemIdentification, NSDraggingDestination, NSAppearanceCustomization, NSAccessibilityElement, NSAccessibility>
82 |
83 | - (instancetype)initWithFrame:(NSRect)frameRect NS_DESIGNATED_INITIALIZER;
| `- note: calls to initializer 'init(frame:)' from outside of its actor context are implicitly asynchronous
84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
85 |
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:56:22: error: cannot find 'UIDevice' in scope
54 |
55 | private static func getBasicUserAgent() -> String {
56 | let device = UIDevice.current
| `- error: cannot find 'UIDevice' in scope
57 | let systemVersion = device.systemVersion
58 | let model = device.model
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:267:52: warning: capture of 'self' with non-sendable type 'OpenPanel' in a '@Sendable' closure
256 | // MARK: - OpenPanel Class
257 |
258 | public class OpenPanel {
| `- note: class 'OpenPanel' does not conform to the 'Sendable' protocol
259 | public static let shared = OpenPanel()
260 |
:
265 | private var global: [String: Any]? {
266 | get { globalQueue.sync { _global } }
267 | set { globalQueue.async(flags: .barrier) { self._global = newValue } }
| `- warning: capture of 'self' with non-sendable type 'OpenPanel' in a '@Sendable' closure
268 | }
269 | private var queue: [TrackHandlerPayload] = []
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:267:67: warning: capture of 'newValue' with non-sendable type '[String : Any]?' in a '@Sendable' closure
265 | private var global: [String: Any]? {
266 | get { globalQueue.sync { _global } }
267 | set { globalQueue.async(flags: .barrier) { self._global = newValue } }
| `- warning: capture of 'newValue' with non-sendable type '[String : Any]?' in a '@Sendable' closure
268 | }
269 | private var queue: [TrackHandlerPayload] = []
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:354:38: warning: capture of 'self' with non-sendable type 'OpenPanel' in a '@Sendable' closure
256 | // MARK: - OpenPanel Class
257 |
258 | public class OpenPanel {
| `- note: class 'OpenPanel' does not conform to the 'Sendable' protocol
259 | public static let shared = OpenPanel()
260 |
:
352 | let operation = BlockOperation {
353 | Task {
354 | let updatedPayload = self.ensureProfileId(payload)
| `- warning: capture of 'self' with non-sendable type 'OpenPanel' in a '@Sendable' closure
355 | let result = await self.api.fetch(path: "/track", data: updatedPayload)
356 | switch result {
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:354:59: warning: capture of 'payload' with non-sendable type 'TrackHandlerPayload' in a '@Sendable' closure
87 | // MARK: - Payload Types
88 |
89 | public enum TrackHandlerPayload: Codable {
| `- note: consider making enum 'TrackHandlerPayload' conform to the 'Sendable' protocol
90 | case track(TrackPayload)
91 | case increment(IncrementPayload)
:
352 | let operation = BlockOperation {
353 | Task {
354 | let updatedPayload = self.ensureProfileId(payload)
| `- warning: capture of 'payload' with non-sendable type 'TrackHandlerPayload' in a '@Sendable' closure
355 | let result = await self.api.fetch(path: "/track", data: updatedPayload)
356 | switch result {
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:354:38: warning: capture of 'self' with non-sendable type 'OpenPanel' in an isolated closure; this is an error in the Swift 6 language mode
256 | // MARK: - OpenPanel Class
257 |
258 | public class OpenPanel {
| `- note: class 'OpenPanel' does not conform to the 'Sendable' protocol
259 | public static let shared = OpenPanel()
260 |
:
352 | let operation = BlockOperation {
353 | Task {
354 | let updatedPayload = self.ensureProfileId(payload)
| `- warning: capture of 'self' with non-sendable type 'OpenPanel' in an isolated closure; this is an error in the Swift 6 language mode
355 | let result = await self.api.fetch(path: "/track", data: updatedPayload)
356 | switch result {
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:354:59: warning: capture of 'payload' with non-sendable type 'TrackHandlerPayload' in an isolated closure; this is an error in the Swift 6 language mode
87 | // MARK: - Payload Types
88 |
89 | public enum TrackHandlerPayload: Codable {
| `- note: consider making enum 'TrackHandlerPayload' conform to the 'Sendable' protocol
90 | case track(TrackPayload)
91 | case increment(IncrementPayload)
:
352 | let operation = BlockOperation {
353 | Task {
354 | let updatedPayload = self.ensureProfileId(payload)
| `- warning: capture of 'payload' with non-sendable type 'TrackHandlerPayload' in an isolated closure; this is an error in the Swift 6 language mode
355 | let result = await self.api.fetch(path: "/track", data: updatedPayload)
356 | switch result {
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:382:37: warning: capture of 'properties' with non-sendable type '[String : Any]' in a '@Sendable' closure
380 | shared.globalQueue.async(flags: .barrier) {
381 | if var global = shared._global {
382 | for (key, value) in properties {
| `- warning: capture of 'properties' with non-sendable type '[String : Any]' in a '@Sendable' closure
383 | global[key] = value
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:418:81: warning: expression implicitly coerced from 'Any??' to 'Any'
416 | var mergedProperties = global
417 | if let payloadProperties = payload.properties {
418 | mergedProperties.merge(payloadProperties) { (_, new) in (new as AnyObject).value }
| | |- note: force-unwrap the value to avoid this warning
| | `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
| `- warning: expression implicitly coerced from 'Any??' to 'Any'
419 | }
420 | updatedPayload.properties = mergedProperties.mapValues { AnyCodable($0) }
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/3] Emitting module OpenPanel
[3/3] Compiling OpenPanel OpenPanel.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:56:22: error: cannot find 'UIDevice' in scope
54 |
55 | private static func getBasicUserAgent() -> String {
56 | let device = UIDevice.current
| `- error: cannot find 'UIDevice' in scope
57 | let systemVersion = device.systemVersion
58 | let model = device.model
/Users/admin/builder/spi-builder-workspace/Sources/OpenPanel/OpenPanel.swift:418:81: warning: expression implicitly coerced from 'Any??' to 'Any'
416 | var mergedProperties = global
417 | if let payloadProperties = payload.properties {
418 | mergedProperties.merge(payloadProperties) { (_, new) in (new as AnyObject).value }
| | |- note: force-unwrap the value to avoid this warning
| | `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
| `- warning: expression implicitly coerced from 'Any??' to 'Any'
419 | }
420 | updatedPayload.properties = mergedProperties.mapValues { AnyCodable($0) }
BUILD FAILURE 6.1 macosSpm