Release: grunt-xcode v2
01 Oct 2014complete rewrite + new features: grunt-xcode
I started building the initial version of grunt-xcode around November last year. The primary reason for the project was that I was getting tired of manually having to do iOS builds for our clients - it needed to be a part of our Grunt build task.
I stumbled upon shenzhen which actually worked fairly well for me as a command-line tool, so I thought āhey let me just wrap this in JSā. That was probably not the wisest decision, but grunt-xcode v1 ended up sort of working for us (not so much for everybody else).
To be honest the code was quite ugly and I didnāt like the dependency on a RubyGem - it just didnāt feel right. I also started getting some bug reports on GitHub and email.
Rewrite
The primary goal of the rewrite was to remove the dependency on shenzhen and use the built-in xcodebuild tool instead.
Features:
- remove dependency on
shenzhen - added support for all parameters available in
xcodebuild - show progress indicators for archiving and export tasks
- show
stdoutif Grunt is run with the--verboseflag

Usage
Iām actively using grunt-xcode for a client project and itās been working out great for me.
Installing grunt-xcode is just as simple as any other npm module:
$ npm install grunt-xcode --save-devrequire('load-grunt-tasks')(grunt);
grunt.initConfig({
xcode: {
options: {
project: '/path/to/my/awesome/App/App.xcodeproj',
scheme: 'Release'
}
}
});
grunt.registerTask('default', ['xcode']);For a list of all options please refer to the README.
Hopefully the codebase is a lot more readable now, that was at least the goal.
Please do let me know if you run into any issues with grunt-xcode, Iām sure there are multiple cases I havenāt tested properly.