Project

xcodegen

0.27
No release in over 3 years
Low commit activity in last 3 years
THIS GEM IS NOW DEPRECATED - Please migrate to https://rubygems.org/gems/structXcodegen comes in two parts - a file watcher that auto-generates a project based on a simple project specification written in YAML or JSON, and options to assist in adding new files and targets to your dynamic project.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

~> 1.12
~> 10.0
~> 3.0

Runtime

~> 0.54.0
~> 0.2.1
~> 3.1.5
~> 1.0.0
~> 1.0.1
~> 1.4.1
~> 4.0
~> 1.4.2
 Project Readme

Struct logo

Struct

Latest Gem Release Git Version Git Version Build status Coverage Status Help Contribute to Open Source

Introduction

struct is a tool for iOS and Mac developers to automate the creation and management of Xcode projects.

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.

Need to have multiple variants of a project depending on how you're distributing to your customers? struct's got you covered with target variants. Now you get a project for each variant, with the ability to add additional source files and resources. Great for whitelabelling and multiple distribution channels!

struct makes working with Xcode easy. You get simple, predictable project files that any developer can understand. Just treat your Xcode projects as a build artifact and feel the weight lift off your shoulders.

Use a spec file to define your project:

---
version: 3.0.0
configurations:
  debug:
  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

Then just run struct generate and struct will do the rest.

You can find documented examples of the project specification in the examples folder.

Installation

struct requires a minimum of Ruby 2.6.3, which is available in macOS Catalina. You can install a higher version of Ruby with RVM on an older macOS version.

Install struct from Rubygems:

You may need to use sudo when using the system-provided Ruby

$ gem install struct

Quick Start

Get started with adding struct to your app:

Create your first spec file

Available Commands

To generate an Xcode project from your spec file, run the following from your project directory:

$ struct generate

To start the file watcher, run the following from your project directory:

$ struct watch

The project will be automatically regenerated whenever the project or any source files change.

Other commands can be discovered by viewing help:

$ struct help

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lyptt/struct.