Skip to content

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.


Generates a new multiplatform project in the current directory.

scd project init [options]
OptionDescription
-n, --nameProject name. Defaults to the current directory name.
--package-idBundle/package identifier (e.g. com.example.myapp). Defaults to com.<name>.<name>.
<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/

Builds the project for one or more platforms.

scd project build [options]
OptionDescription
-c, --configurationBuild configuration: debug (default) or release.
--platformTarget platform. Repeatable. Default: Android. See platform values below.
ValueDescription
(omitted)Android — runs gradle assembleDebug / gradle assembleRelease
android-arm64-v8aAndroid (same Gradle build; all configured ABIs are built)
iphonesimulatoriOS Simulator — xcodebuild, scheme <Name>IOS
iphoneosiOS Device — xcodebuild, scheme <Name>IOS
macosmacOS — xcodebuild, scheme <Name>MacOS
Terminal window
scd project build # Android (debug)
scd project build --configuration release # Android (release)
scd project build --platform macos # macOS only
scd project build --platform iphonesimulator --platform macos # iOS sim + macOS

Builds, installs, and runs the project on a device or simulator.

scd project run [options]
OptionDescription
-c, --configurationBuild configuration: debug (default) or release.
--platformTarget platform. Default: Android.
--deviceDevice or simulator name. Android: emulator name. iOS: simulator name (e.g. "iPhone 16").
PlatformBehaviour
(omitted)Builds APK → installs via adb → launches → streams logcat
iphonesimulatorBuilds → boots simulator if needed → simctl installsimctl launch --console-pty
macosBuilds → runs .app/Contents/MacOS/<name> directly, streaming stdout
Terminal window
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 macos
scd project run --platform macos --configuration release