struct enables you to safely and predictably manage your Xcode projects. It's fully open source, well tested, and kept up to date with the latest Xcode changes.
Ever lamented over your unorganised project files? struct solves that by making your filesystem be your project structure. How it is on disk is how it is in your project. Simple.
Craft your project with YAML or JSON
Build real Xcode projects from a spec
Move to struct with ease
There's no more need to struggle with xcodeproj merge conflicts, struct specs are incredibly simple and expressive. Both YAML and JSON are supported file formats, so you can use whatever you're comfortable with.
--- version: 1.0.0 configurations: debug: profiles: - general:debug - ios:debug release: profiles: - general:release - ios:release targets: MyApp: sources: src i18n-resources: res platform: ios type: ":application" configuration: ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon INFOPLIST_FILE: Info.plist PRODUCT_BUNDLE_IDENTIFIER: uk.lyptt.MyApp
struct generates real Xcode projects with all of the functionality you use day to day. Even more complex features like linking to frameworks in subprojects, embedded binaries and resource localization are supported.
struct is improving all the time, with support for more and more Xcode project workflows being added regularly. If struct is missing functionality you require, raise a Github issue.
Moving to struct is easy. Migration support is built-in to struct, allowing you to get existing projects up and running without having to start from scratch.
All Xcode projects created with Xcode 8.0 and up are supported for migration. struct has full support for Swift and Objective-C targets, along with unit tests, UI tests, and pretty much any other target you can throw at it.