How silicondevkit.com builds your app with Swift Package Manager
Every app you get from silicondevkit.com is built on a real Mac with the Swift toolchain. This post explains what that means, and how the finished .app is put together.
Why a Mac
Swift itself is open source and runs on Linux. But a SwiftUI app imports Apple's frameworks (SwiftUI, AppKit), and those ship in Apple's macOS SDK, which comes with Xcode and is licensed for use on Apple hardware. So the build has to run on a Mac. Our build machines are Apple-silicon Macs with full Xcode installed.
Swift Package Manager, not an Xcode project
Each project is a Swift package: a Package.swift with one executable target called App, and your source files in Sources/App/. The AI writes the SwiftUI code. The build itself is one command:
swift build -c release
We do not use an .xcodeproj or xcodebuild. An Xcode project file is a large generated file that is hard to edit reliably by hand or by machine, while a package is a small text manifest. If the build fails, the compiler errors go back to the AI to fix, up to two times, before the job is marked failed.
Swift and Swift Package Manager are open source under the Apache 2.0 license with a Runtime Library Exception, so apps built this way carry no attribution requirement.
From binary to .app
swift build produces a bare executable, not a double-clickable app. The build pipeline assembles the bundle:
- Create
YourApp.app/Contents/MacOS/and copy the executable into it. - Write
Contents/Info.plistwith the bundle identifier, name, version and minimum macOS version (13.0). - Ad-hoc sign the bundle with
codesign -s -. - Zip it with
ditto, keeping the bundle structure, and upload the zip.
What this means for your app
- Apps are single-target SwiftUI packages for macOS 13 or later.
- No third-party Swift packages. Everything comes from Apple's frameworks and the standard library.
- No asset catalog, app icon or entitlements file yet. You can add those yourself when you sign and ship the app. See Submitting a Mac app to the Mac App Store from the terminal.
- The app is ad-hoc signed. To share it without warnings, see Sign and notarize your app in 3 steps.
For an overview of the whole flow from prompt to download, see How silicondevkit.com works.