Skip to content
A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
Ruby Objective-C
Branch: master
Clone or download
marklarr
marklarr v0.2.1
Latest commit e22f20a May 13, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Add flag to disable sort groups by name Jan 28, 2016
docs/images remove unsed images May 29, 2014
lib v0.2.1 May 13, 2016
spec When synx'ing, also sort entries by if they are a group/file, then name. Aug 21, 2015
.gitignore Add test dummy into gitignore May 12, 2014
.travis.yml run on OS X for CoreFoundation (required by xcodeproj) May 29, 2014
CHANGELOG.md Fix thsi formatting in the CHANGELOG Jan 1, 2015
Gemfile rename synxronize to synx May 27, 2014
LICENSE.txt Update LICENSE.txt May 29, 2014
README.md Add flag to disable sort groups by name Jan 28, 2016
Rakefile
synx.gemspec Using xcodeproj 1.0.0 May 13, 2016

README.md

synx logo

Gem Version Build Status

A command-line tool that reorganizes your Xcode project folder to match your Xcode groups.

synx gif

Xcode

synx Xcode

Finder

synx finder before/after

Installation

$ gem install synx

Usage

Basic

⚠️ WARNING: Make sure that your project is backed up through source control before doing anything ⚠️

Execute the command on your project to have it reorganize the files on the file system:

 $ synx path/to/my/project.xcodeproj

It may have confused CocoaPods. If you use them, execute this command:

$ pod install

You're good to go!

Advanced

Synx supports the following options:

  --prune, -p                   remove source files and image resources that are not referenced by the the Xcode project
  --no-color                    removes all color from the output
  --no-default-exclusions       doesn't use the default exclusions of /Libraries, /Frameworks, and /Products
  --no-sort-by-name             disable sorting groups by name
  --quiet, -q                   silence all output
  --exclusion, -e EXCLUSION     ignore an Xcode group while syncing

For example, OCMock could have been organized using this command:

$ synx -p -e "/OCMock/Core Mocks" -e /OCMockTests Source/OCMock.xcodeproj/

if they had wanted not to sync the /OCMock/Core Mocks and /OCMockTests groups, and also remove (-p) any image/source files found by synx that weren't referenced by any groups in Xcode.

Contributing

We'd love to see your ideas for improving this library! The best way to contribute is by submitting a pull request. We'll do our best to respond to your patch as soon as possible. You can also submit a new Github issue if you find bugs or have questions. :octocat:

Please make sure to follow our general coding style and add test coverage for new features!

Contributors

You can’t perform that action at this time.