run-on-device covers the whole path from build to launch on hardware, including streamed logs and launch arguments, and simctl-manager covers the simulator side of the same question. Signing is reported by xcode-codesign-info rather than changed by it, so certificate work stays where it was. Everything is scoped to a projectPath you pass in, which makes several checkouts on one machine straightforward to keep apart.
A wrapper over the Xcode toolchain that exposes build, test, archive, code-signing, simulator and device-launch commands as tools.
- Builds of a named scheme against a destination and configuration, with an optional clean step and room for extra arguments.
- Test runs driven by a test plan with onlyTesting and skipTesting filters, writing a result bundle where you point it.
- Archive and export of a scheme through an exportOptionsPlist.
- Code-signing settings for a target, plus scheme and project details.
- Simctl for the simulators and Swift Package Manager for a package directory.
- Launch on real hardware with environment variables, launch arguments, streamed logs and a start-stopped option.
Xcode installed on the machine and a project to point projectPath at; run-on-device also needs the device it will launch on.
One command — npx @devyhan/xcode-mcp -y
