| name | ruckus |
| description | Use when building, testing, or linting the Ruckus iOS app, regenerating
the Tuist project, running tests, or adding new Swift files. Covers
xcodebuild, tuist, make, swiftlint, and test workflows.
|
| user-invocable | false |
Ruckus Build, Test, Lint & Tuist
Build
Build from the command line:
xcodebuild -workspace Ruckus.xcworkspace -scheme Ruckus -destination 'generic/platform=iOS' build
To check for warnings, use clean build — incremental builds skip unchanged
files and won't re-emit their warnings:
xcodebuild clean build -workspace Ruckus.xcworkspace -scheme Ruckus -destination 'generic/platform=iOS'
A pre-build script in Project.swift runs make automatically before
compiling. This regenerates Backend.swift and res/core.zo from
Racket source. No need to run make manually before building.
Tests
Run tests with xcodebuild using the workspace (not the project):
xcodebuild test -workspace Ruckus.xcworkspace -scheme Ruckus \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro'
To run a specific test class:
xcodebuild test -workspace Ruckus.xcworkspace -scheme Ruckus \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
-only-testing RuckusTests/ClassName
The workspace is required because it includes external dependencies
(Noise, Runestone, TreeSitter). The project alone can't resolve them.
Tuist
After modifying Project.swift, run:
tuist generate --no-open
When adding or removing Swift files, regenerate the project so Xcode
picks them up. Tuist auto-globs all .swift files — no need to edit
Project.swift for new files.
Linting
Always run after modifying Swift files:
swiftlint lint
Fix any violations before finishing.
Swift Configuration
- iOS 26.0+ deployment target
- Swift 6.0 (strict concurrency by default)
Key Files
Ruckus/racket — Vendored Racket libraries and environment config for runtime execution
Ruckus/Backend.swift — Auto-generated Swift RPC client (do not edit)
Ruckus/Backend/Backend+shared.swift — Shared Backend singleton
Project.swift — Tuist project definition
Tuist/Package.swift — Swift package dependencies (Noise from ../../Noise/, OpenSSL)