Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Fixed

- Fixed CLI test summaries showing false-positive compiler errors from xcodebuild NSError dump lines, and added compiler-error snapshot coverage for simulator, device, and macOS build-style flows ([#383](https://github.com/getsentry/XcodeBuildMCP/issues/383)).
- Fixed simulator OSLog helper cleanup so server and daemon startup reconcile same-workspace orphaned log streams without stopping helpers owned by live sessions in other workspaces ([#382](https://github.com/getsentry/XcodeBuildMCP/issues/382)).

## [2.5.0-beta.1]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,7 @@ struct CalculatorApp: App {
#Preview {
ContentView()
}

#if SNAPSHOT_COMPILER_ERROR
private let snapshotCompilerError: Int = "not an int"
#endif
4 changes: 4 additions & 0 deletions example_projects/macOS/MCPTest/MCPTestApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ struct MCPTestApp: App {
}
}
}

#if SNAPSHOT_COMPILER_ERROR
private let snapshotCompilerError: Int = "not an int"
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

🔨 Build

Scheme: CalculatorApp
Workspace: example_projects/iOS_Calculator/CalculatorApp.xcworkspace
Configuration: Debug
Platform: iOS
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33:42

❌ Build failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/build_device_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

🚀 Build & Run

Scheme: CalculatorApp
Workspace: example_projects/iOS_Calculator/CalculatorApp.xcworkspace
Configuration: Debug
Platform: iOS
Device: <DEVICE> (<UUID>)
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33:42

❌ Build failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/build_run_device_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

🧪 Test

Scheme: CalculatorApp
Workspace: example_projects/iOS_Calculator/CalculatorApp.xcworkspace
Configuration: Debug
Platform: iOS
Device: <DEVICE> (<UUID>)
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>
Selective Testing:
CalculatorAppTests/CalculatorAppTests/testAddition

Discovered 1 test(s):
CalculatorAppTests/CalculatorAppTests/testAddition

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33:42

❌ Test failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/test_device_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

🔨 Build

Scheme: MCPTest
Project: example_projects/macOS/MCPTest.xcodeproj
Configuration: Debug
Platform: macOS
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/MCPTest-<HASH>

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/macOS/MCPTest/MCPTestApp.swift:20:42

❌ Build failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/build_macos_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

🚀 Build & Run

Scheme: MCPTest
Project: example_projects/macOS/MCPTest.xcodeproj
Configuration: Debug
Platform: macOS
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/MCPTest-<HASH>

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/macOS/MCPTest/MCPTestApp.swift:20:42

❌ Build failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/build_run_macos_<TIMESTAMP>_pid<PID>.log
23 changes: 23 additions & 0 deletions src/snapshot-tests/__fixtures__/cli/macos/test--error-compiler.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

🧪 Test

Scheme: MCPTest
Project: example_projects/macOS/MCPTest.xcodeproj
Configuration: Debug
Platform: macOS
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/MCPTest-<HASH>
Selective Testing:
MCPTestTests/MCPTestTests/appNameIsCorrect()
MCPTestTests/MCPTestsXCTests/testAppNameIsCorrect

Discovered 2 test(s):
MCPTestTests/MCPTestTests/appNameIsCorrect
MCPTestTests/MCPTestsXCTests/testAppNameIsCorrect

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/macOS/MCPTest/MCPTestApp.swift:20:42

❌ Test failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/test_macos_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

🔨 Build

Scheme: CalculatorApp
Workspace: example_projects/iOS_Calculator/CalculatorApp.xcworkspace
Configuration: Debug
Platform: iOS Simulator
Simulator: iPhone 17
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33:42

❌ Build failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/build_sim_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

🚀 Build & Run

Scheme: CalculatorApp
Workspace: example_projects/iOS_Calculator/CalculatorApp.xcworkspace
Configuration: Debug
Platform: iOS Simulator
Simulator: iPhone 17
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33:42

❌ Build failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/build_run_sim_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

🧪 Test

Scheme: CalculatorApp
Workspace: example_projects/iOS_Calculator/CalculatorApp.xcworkspace
Configuration: Debug
Platform: iOS Simulator
Simulator: iPhone 17
Derived Data: <HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>
Selective Testing:
CalculatorAppTests/CalculatorAppTests/testAddition

Discovered 1 test(s):
CalculatorAppTests/CalculatorAppTests/testAddition

Compiler Errors (1):

✗ cannot convert value of type 'String' to specified type 'Int'
example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33:42

❌ Test failed. (⏱️ <DURATION>)
└ Build Logs: <HOME>/Library/Developer/XcodeBuildMCP/logs/test_sim_<TIMESTAMP>_pid<PID>.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"schema": "xcodebuildmcp.output.build-result",
"schemaVersion": "1",
"didError": true,
"error": "Build failed",
"data": {
"request": {
"scheme": "CalculatorApp",
"workspacePath": "example_projects/iOS_Calculator/CalculatorApp.xcworkspace",
"derivedDataPath": "<HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>",
"configuration": "Debug",
"platform": "iOS",
"target": "device"
},
"summary": {
"status": "FAILED",
"durationMs": 1234,
"target": "device"
},
"artifacts": {
"buildLogPath": "<HOME>/Library/Developer/XcodeBuildMCP/logs/build_device_<TIMESTAMP>_pid<PID>.log"
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "cannot convert value of type 'String' to specified type 'Int'",
"location": "<ROOT>/example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"schema": "xcodebuildmcp.output.build-run-result",
"schemaVersion": "1",
"didError": true,
"error": "Build failed",
"data": {
"request": {
"scheme": "CalculatorApp",
"workspacePath": "example_projects/iOS_Calculator/CalculatorApp.xcworkspace",
"derivedDataPath": "<HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>",
"configuration": "Debug",
"platform": "iOS",
"deviceId": "<UUID>",
"target": "device"
},
"summary": {
"status": "FAILED",
"durationMs": 1234,
"target": "device"
},
"artifacts": {
"deviceId": "<UUID>",
"buildLogPath": "<HOME>/Library/Developer/XcodeBuildMCP/logs/build_run_device_<TIMESTAMP>_pid<PID>.log"
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "cannot convert value of type 'String' to specified type 'Int'",
"location": "<ROOT>/example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"schema": "xcodebuildmcp.output.test-result",
"schemaVersion": "1",
"didError": true,
"error": "Tests failed",
"data": {
"request": {
"scheme": "CalculatorApp",
"workspacePath": "example_projects/iOS_Calculator/CalculatorApp.xcworkspace",
"derivedDataPath": "<HOME>/Library/Developer/XcodeBuildMCP/DerivedData/CalculatorApp-<HASH>",
"configuration": "Debug",
"platform": "iOS",
"deviceId": "<UUID>",
"target": "device",
"onlyTesting": [
"CalculatorAppTests/CalculatorAppTests/testAddition"
],
"skipTesting": []
},
"summary": {
"status": "FAILED",
"durationMs": 1234,
"target": "device"
},
"artifacts": {
"deviceId": "<UUID>",
"buildLogPath": "<HOME>/Library/Developer/XcodeBuildMCP/logs/test_device_<TIMESTAMP>_pid<PID>.log"
},
"tests": {
"selected": [
"CalculatorAppTests/CalculatorAppTests/testAddition"
],
"discovered": {
"total": 1,
"items": [
"CalculatorAppTests/CalculatorAppTests/testAddition"
]
}
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "cannot convert value of type 'String' to specified type 'Int'",
"location": "<ROOT>/example_projects/iOS_Calculator/CalculatorApp/CalculatorApp.swift:33"
}
],
"testFailures": []
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"schema": "xcodebuildmcp.output.build-result",
"schemaVersion": "1",
"didError": true,
"error": "Build failed",
"data": {
"request": {
"scheme": "MCPTest",
"projectPath": "example_projects/macOS/MCPTest.xcodeproj",
"derivedDataPath": "<HOME>/Library/Developer/XcodeBuildMCP/DerivedData/MCPTest-<HASH>",
"configuration": "Debug",
"platform": "macOS",
"target": "macos"
},
"summary": {
"status": "FAILED",
"durationMs": 1234,
"target": "macos"
},
"artifacts": {
"buildLogPath": "<HOME>/Library/Developer/XcodeBuildMCP/logs/build_macos_<TIMESTAMP>_pid<PID>.log"
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "cannot convert value of type 'String' to specified type 'Int'",
"location": "<ROOT>/example_projects/macOS/MCPTest/MCPTestApp.swift:20"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"schema": "xcodebuildmcp.output.build-run-result",
"schemaVersion": "1",
"didError": true,
"error": "Build failed",
"data": {
"request": {
"scheme": "MCPTest",
"projectPath": "example_projects/macOS/MCPTest.xcodeproj",
"derivedDataPath": "<HOME>/Library/Developer/XcodeBuildMCP/DerivedData/MCPTest-<HASH>",
"configuration": "Debug",
"platform": "macOS",
"target": "macos"
},
"summary": {
"status": "FAILED",
"durationMs": 1234,
"target": "macos"
},
"artifacts": {
"buildLogPath": "<HOME>/Library/Developer/XcodeBuildMCP/logs/build_run_macos_<TIMESTAMP>_pid<PID>.log"
},
"diagnostics": {
"warnings": [],
"errors": [
{
"message": "cannot convert value of type 'String' to specified type 'Int'",
"location": "<ROOT>/example_projects/macOS/MCPTest/MCPTestApp.swift:20"
}
]
}
}
}
Loading
Loading