Take charge of your Xcode projects

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.


Features

Write

Craft your project with YAML or JSON

Generate

Build real Xcode projects from a spec

Migrate

Move to struct with ease


Craft your project with YAML or JSON

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

Build real Xcode projects

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.


Migrate to struct

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.


Check out the Quick Start guide for a simple run-through of getting started with struct
Get started