Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Xcode command-line interface
branch: master
Failed to load latest commit information.
LICENSE Add BSD license to the project
README.markdown Add link to xcs2
xcs.thor Handle strange state when Xcode does not open project

README.markdown

xcs (Xcode script)

Update

xcs2 (the next generation of this tool) is available here

Intro

While building/cleaning Xcode project from command line is trivial task (hint: xcodebuild), managing the project content used to be the hard one. xcs is supposed to solve this problem: it provides a minimal set of tasks for adding/removing files for existing Xcode projects.

Installation

You'll need two gems: thor and rb-appscript. And then run

thor install https://github.com/gonzoua/xcs/raw/master/xcs.thor

Tasks

Get full list of tasks using command

thor xcs:help
  • xcs:add File [Group] Add file to a group. By default adds to "Source"
  • xcs:help [TASK] Describe available tasks or one specific task
  • xcs:list [--verbose] List project contents
  • xcs:mkgroup Group Create new subgroup in root group
  • xcs:rm Group/File Remove file reference from a project
  • xcs:rmgroup Group Remove Group

Sample usage

Just cd to your project directory and run

thor xcs:list

You'll get something like this:

Using /Users/gonzo/Projects/EPUBToolkit/EPUBToolkit.xcodeproj
EPUBToolkit/
  EPUBFile.h
  EPUBFile.m
  Source/
    main.m
  Documentation/
    EPUBToolkit.1
  Products/
    EPUBToolkit
  Frameworks/
    Foundation.framework
  Other Sources/
    EPUBToolkit-Prefix.pch

Create a file and add it to project, to group FooSources

echo '#import "Foo.h"' > Foo.m
thor xcs:mkgroup FooSources
thor xcs:add Foo.m FooSources

Limitations

  • Only first-level groups are supported
  • No targets support

Ideas

Ideas are welcome. Open issue or drop me a line at gonzo@bluezbox.com
Pull requests are even more welcome.

Contributors

Oleksandr Tymoshenko

License

See LICENSE

Something went wrong with that request. Please try again.