xcode-starter-pack creates an opinionated Apple project scaffold: an Xcode main
application, a local shared-code Swift package, and a workspace containing both.
The starter assets are embedded in the CLI binary, so the generated project is
always built from the version of the tool being run.
Install XcodeGen, then build the CLI locally:
brew install xcodegen just
just build
just runnew first asks where to create the project, then asks for its name, supported
platforms through a checkbox selector, app target name, and unit test target
name. The target prompts default to the project name and <Project> Tests.
For scripts and CI, provide every value as a flag instead:
build/xcode-starter-pack new \
--output ~/Developer/Orbit \
--name Orbit \
--platform iOS \
--platform macOS \
--app-target Orbit \
--test-target "Orbit Tests"The command only publishes the output directory after XcodeGen has succeeded.
XcodeGen is used once during creation. The finished project contains no generation
spec or regeneration script. Open the workspace, edit the project directly, and
commit the .xcodeproj and .xcworkspace alongside the source code. Shared Code
and the root documentation appear in the workspace without duplicate project groups.
Generated bundle identifiers use com.justinwme.<project-name>.app and
com.justinwme.<project-name>.tests; targets retain spaces and are labelled
per platform, such as Orbit (iOS).
The canonical starter project is in internal/scaffold/assets. base is
copied into every generated project; library retains configuration building
blocks that are not yet generated by the CLI. Do not add a second editable
starter project at the repository root.
just check
just generate-example