Skip to main content
Create a new Xcode project using FlowDeck’s built-in SwiftUI template. A single multi-platform app target covers iOS, macOS, tvOS, and visionOS (via XcodeGen supportedDestinations), depending on the SDKs installed in Xcode. watchOS is handled separately — see watchOS apps below.

Arguments

Options

watchOS apps

A watch app is always its own target — Xcode and XcodeGen do not allow watchos as a shared multiplatform destination, so it can’t be listed alongside the others in --platforms. There are two ways to create one:
  • Standalone watch app — pass --platforms watchos on its own. Runs on Apple Watch without an iPhone app. Set its deployment target with --watchos-target.
  • Companion watch app — pass --watch-companion alongside an iOS app. This generates the multi-platform app plus a second, embedded watchOS target (bundle id <bundle-id>.watchkitapp) that ships inside the iOS app and auto-installs on the paired Watch. It reuses the app’s SwiftUI sources, so the same views build for both. --watch-companion requires ios in --platforms (a companion needs an iPhone host) and honors --watchos-target.
Combining watchos with other platforms in --platforms (e.g. --platforms ios,watchos) is rejected. Use --watch-companion for a companion, or --platforms watchos on its own for a standalone watch app.

JSON Output

With --watch-companion, the embedded watch app is reported in platforms as "watchOS (Companion)" alongside the app’s destinations (e.g. ["iOS", "watchOS (Companion)"]).