Build Information
Successful build of simshot, reference v0.2.2 (b3716a), with Swift 6.1 for macOS (SPM) on 18 Oct 2026 16:04:44 UTC.
Swift 6 data race errors: 3
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.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/kichiemon/simshot.git
Reference: v0.2.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kichiemon/simshot
* tag v0.2.2 -> FETCH_HEAD
HEAD is now at b3716a8 chore(release): v0.2.2
Cloned https://github.com/kichiemon/simshot.git
Revision (git rev-parse @):
b3716a86da20113605bb4c0c4a0f9aaf8c2c27fb
SUCCESS checkout https://github.com/kichiemon/simshot.git at v0.2.2
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/kichiemon/simshot.git
https://github.com/kichiemon/simshot.git
{
"dependencies" : [
],
"manifest_display_name" : "simshot",
"name" : "simshot",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "simshot",
"targets" : [
"simshot"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "simshotTests",
"module_type" : "SwiftTarget",
"name" : "simshotTests",
"path" : "Tests/simshotTests",
"sources" : [
"ArgParserTests.swift",
"DoctorTests.swift",
"InitConfigTests.swift",
"ProcessRunnerTests.swift",
"ResizerFailureTests.swift",
"ResizerTests.swift",
"ShotSpecTests.swift",
"SimctlProcessTests.swift",
"VerifierTests.swift"
],
"target_dependencies" : [
"SimshotCore"
],
"type" : "test"
},
{
"c99name" : "simshot",
"module_type" : "SwiftTarget",
"name" : "simshot",
"path" : "Sources/simshot",
"product_memberships" : [
"simshot"
],
"sources" : [
"CLI.swift",
"Doctor.swift",
"Help.swift",
"InitRunner.swift",
"ShootRunner.swift",
"VerifyRunner.swift"
],
"target_dependencies" : [
"SimshotCore"
],
"type" : "executable"
},
{
"c99name" : "SimshotCore",
"module_type" : "SwiftTarget",
"name" : "SimshotCore",
"path" : "Sources/SimshotCore",
"product_memberships" : [
"simshot"
],
"sources" : [
"DeviceSpec.swift",
"Doctor.swift",
"InitConfig.swift",
"Options.swift",
"ProcessRunner.swift",
"Resizer.swift",
"ShotSpec.swift",
"Simctl.swift",
"Support.swift",
"Verifier.swift",
"XcodeBuild.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/7] Write sources
[1/7] Write simshot-entitlement.plist
[3/7] Write swift-version-2F0A5646E1D333AE.txt
[5/18] Compiling SimshotCore Simctl.swift
[6/18] Compiling SimshotCore Resizer.swift
[7/18] Compiling SimshotCore Support.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/Support.swift:41:23: warning: static property 'verbose' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public enum Log {
40 | /// When `true`, `detail` messages are printed.
41 | public static var verbose = false
| |- warning: static property 'verbose' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'verbose' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'verbose' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | /// Print a normal progress message to stdout.
[8/18] Compiling SimshotCore ShotSpec.swift
[9/18] Compiling SimshotCore ProcessRunner.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/ProcessRunner.swift:23:16: warning: static property 'handler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 | /// The underlying implementation. Overridable so tests can inject fake
22 | /// processes without spawning real commands.
23 | static var handler: (String, [String], TimeInterval, Bool) throws -> ProcessResult = realRun
| |- warning: static property 'handler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'handler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'handler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 | /// Run an external command with a hard timeout, capturing its output.
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/ProcessRunner.swift:73:17: warning: mutation of captured var 'stdoutData' in concurrently-executing code
71 | let data = stdoutPipe.fileHandleForReading.readDataToEndOfFile()
72 | lock.lock()
73 | stdoutData.append(data)
| `- warning: mutation of captured var 'stdoutData' in concurrently-executing code
74 | lock.unlock()
75 | }
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/ProcessRunner.swift:79:17: warning: mutation of captured var 'stderrData' in concurrently-executing code
77 | let data = stderrPipe.fileHandleForReading.readDataToEndOfFile()
78 | lock.lock()
79 | stderrData.append(data)
| `- warning: mutation of captured var 'stderrData' in concurrently-executing code
80 | lock.unlock()
81 | }
[10/18] Compiling SimshotCore DeviceSpec.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/DeviceSpec.swift:36:23: warning: static property 'appStoreTargets' is not concurrency-safe because non-'Sendable' type '[AppStoreTarget]' may have shared mutable state; this is an error in the Swift 6 language mode
2 |
3 | /// A single App Store screenshot size target (device + name + dimensions).
4 | public struct AppStoreTarget: Equatable {
| `- note: consider making struct 'AppStoreTarget' conform to the 'Sendable' protocol
5 | public let size: CGSize
6 | public let name: String
:
34 | /// Order matters: `matchTarget` breaks an aspect-ratio tie by first match,
35 | /// so the preferred sizes (largest iPhone, iPad 13") come first.
36 | public static let appStoreTargets: [AppStoreTarget] = [
| |- warning: static property 'appStoreTargets' is not concurrency-safe because non-'Sendable' type '[AppStoreTarget]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'appStoreTargets' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 | // iPhone — Dynamic Island (large display)
38 | AppStoreTarget(
[11/18] Compiling SimshotCore Doctor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/DeviceSpec.swift:36:23: warning: static property 'appStoreTargets' is not concurrency-safe because non-'Sendable' type '[AppStoreTarget]' may have shared mutable state; this is an error in the Swift 6 language mode
2 |
3 | /// A single App Store screenshot size target (device + name + dimensions).
4 | public struct AppStoreTarget: Equatable {
| `- note: consider making struct 'AppStoreTarget' conform to the 'Sendable' protocol
5 | public let size: CGSize
6 | public let name: String
:
34 | /// Order matters: `matchTarget` breaks an aspect-ratio tie by first match,
35 | /// so the preferred sizes (largest iPhone, iPad 13") come first.
36 | public static let appStoreTargets: [AppStoreTarget] = [
| |- warning: static property 'appStoreTargets' is not concurrency-safe because non-'Sendable' type '[AppStoreTarget]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'appStoreTargets' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 | // iPhone — Dynamic Island (large display)
38 | AppStoreTarget(
[12/18] Compiling SimshotCore Options.swift
[13/18] Compiling SimshotCore InitConfig.swift
[14/18] Emitting module SimshotCore
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/DeviceSpec.swift:36:23: warning: static property 'appStoreTargets' is not concurrency-safe because non-'Sendable' type '[AppStoreTarget]' may have shared mutable state; this is an error in the Swift 6 language mode
2 |
3 | /// A single App Store screenshot size target (device + name + dimensions).
4 | public struct AppStoreTarget: Equatable {
| `- note: consider making struct 'AppStoreTarget' conform to the 'Sendable' protocol
5 | public let size: CGSize
6 | public let name: String
:
34 | /// Order matters: `matchTarget` breaks an aspect-ratio tie by first match,
35 | /// so the preferred sizes (largest iPhone, iPad 13") come first.
36 | public static let appStoreTargets: [AppStoreTarget] = [
| |- warning: static property 'appStoreTargets' is not concurrency-safe because non-'Sendable' type '[AppStoreTarget]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'appStoreTargets' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 | // iPhone — Dynamic Island (large display)
38 | AppStoreTarget(
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/ProcessRunner.swift:23:16: warning: static property 'handler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 | /// The underlying implementation. Overridable so tests can inject fake
22 | /// processes without spawning real commands.
23 | static var handler: (String, [String], TimeInterval, Bool) throws -> ProcessResult = realRun
| |- warning: static property 'handler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'handler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'handler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 | /// Run an external command with a hard timeout, capturing its output.
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/Support.swift:41:23: warning: static property 'verbose' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public enum Log {
40 | /// When `true`, `detail` messages are printed.
41 | public static var verbose = false
| |- warning: static property 'verbose' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'verbose' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'verbose' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | /// Print a normal progress message to stdout.
[15/18] Compiling SimshotCore Verifier.swift
[16/19] Compiling SimshotCore XcodeBuild.swift
[17/26] Compiling simshot InitRunner.swift
[18/26] Compiling simshot ShootRunner.swift
/Users/admin/builder/spi-builder-workspace/Sources/simshot/ShootRunner.swift:12:13: warning: reference to static property 'verbose' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public func run() throws {
12 | Log.verbose = options.verbose
| `- warning: reference to static property 'verbose' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | // 1. Build (or use an existing .app).
/Users/admin/builder/spi-builder-workspace/Sources/SimshotCore/Support.swift:41:23: note: static property declared here
39 | public enum Log {
40 | /// When `true`, `detail` messages are printed.
41 | public static var verbose = false
| `- note: static property declared here
42 |
43 | /// Print a normal progress message to stdout.
[19/26] Compiling simshot Help.swift
[20/26] Compiling simshot CLI.swift
[21/26] Compiling simshot Doctor.swift
[22/26] Emitting module simshot
[23/26] Compiling simshot VerifyRunner.swift
[23/26] Write Objects.LinkFileList
[24/26] Linking simshot
[25/26] Applying simshot
Build complete! (6.46s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "simshot",
"name" : "simshot",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "simshot",
"targets" : [
"simshot"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "simshotTests",
"module_type" : "SwiftTarget",
"name" : "simshotTests",
"path" : "Tests/simshotTests",
"sources" : [
"ArgParserTests.swift",
"DoctorTests.swift",
"InitConfigTests.swift",
"ProcessRunnerTests.swift",
"ResizerFailureTests.swift",
"ResizerTests.swift",
"ShotSpecTests.swift",
"SimctlProcessTests.swift",
"VerifierTests.swift"
],
"target_dependencies" : [
"SimshotCore"
],
"type" : "test"
},
{
"c99name" : "simshot",
"module_type" : "SwiftTarget",
"name" : "simshot",
"path" : "Sources/simshot",
"product_memberships" : [
"simshot"
],
"sources" : [
"CLI.swift",
"Doctor.swift",
"Help.swift",
"InitRunner.swift",
"ShootRunner.swift",
"VerifyRunner.swift"
],
"target_dependencies" : [
"SimshotCore"
],
"type" : "executable"
},
{
"c99name" : "SimshotCore",
"module_type" : "SwiftTarget",
"name" : "SimshotCore",
"path" : "Sources/SimshotCore",
"product_memberships" : [
"simshot"
],
"sources" : [
"DeviceSpec.swift",
"Doctor.swift",
"InitConfig.swift",
"Options.swift",
"ProcessRunner.swift",
"Resizer.swift",
"ShotSpec.swift",
"Simctl.swift",
"Support.swift",
"Verifier.swift",
"XcodeBuild.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.