scd project
Manages multiplatform Swift projects that target Android, iOS, and macOS from a single Swift codebase. The project command group contains three subcommands: init, build, and run.
All subcommands accept Global Options for configuring tool paths and SDKs.
scd project init
Section titled “scd project init”Generates a new multiplatform project in the current directory.
Synopsis
Section titled “Synopsis”scd project init [options]Options
Section titled “Options”| Option | Description |
|---|---|
-n, --name | Project name. Defaults to the current directory name. |
--package-id | Bundle/package identifier (e.g. com.example.myapp). Defaults to com.<name>.<name>. |
Generated structure
Section titled “Generated structure”<cwd>/ Packages/<name>/ # SPM package — Swift dynamic library Package.swift Sources/<name>/<name>.swift
Android/<name>/ # Android Studio project (Kotlin DSL) app/ build.gradle.kts src/main/ AndroidManifest.xml java/.../MainActivity.kt build.gradle.kts settings.gradle.kts gradle/libs.versions.toml
Apple/<name>/ # Xcode project (iOS + macOS) <name>.xcodeproj/ Sources/ <name>App.swift ContentView.swift Assets.xcassets/scd project build
Section titled “scd project build”Builds the project for one or more platforms.
Synopsis
Section titled “Synopsis”scd project build [options]Options
Section titled “Options”| Option | Description |
|---|---|
-c, --configuration | Build configuration: debug (default) or release. |
--platform | Target platform. Repeatable. Default: Android. See platform values below. |
Platform values
Section titled “Platform values”| Value | Description |
|---|---|
| (omitted) | Android — runs gradle assembleDebug / gradle assembleRelease |
android-arm64-v8a | Android (same Gradle build; all configured ABIs are built) |
iphonesimulator | iOS Simulator — xcodebuild, scheme <Name>IOS |
iphoneos | iOS Device — xcodebuild, scheme <Name>IOS |
macos | macOS — xcodebuild, scheme <Name>MacOS |
Examples
Section titled “Examples”scd project build # Android (debug)scd project build --configuration release # Android (release)scd project build --platform macos # macOS onlyscd project build --platform iphonesimulator --platform macos # iOS sim + macOSscd project run
Section titled “scd project run”Builds, installs, and runs the project on a device or simulator.
Synopsis
Section titled “Synopsis”scd project run [options]Options
Section titled “Options”| Option | Description |
|---|---|
-c, --configuration | Build configuration: debug (default) or release. |
--platform | Target platform. Default: Android. |
--device | Device or simulator name. Android: emulator name. iOS: simulator name (e.g. "iPhone 16"). |
Platform behaviour
Section titled “Platform behaviour”| Platform | Behaviour |
|---|---|
| (omitted) | Builds APK → installs via adb → launches → streams logcat |
iphonesimulator | Builds → boots simulator if needed → simctl install → simctl launch --console-pty |
macos | Builds → runs .app/Contents/MacOS/<name> directly, streaming stdout |
Examples
Section titled “Examples”scd project run # Android (finds/starts emulator)scd project run --platform iphonesimulator # iOS simulator (first available)scd project run --platform iphonesimulator --device "iPhone 16"scd project run --platform macosscd project run --platform macos --configuration release