rnpm/node-xcode

Name: node-xcode

Owner: rnpm

Description: tools and utilities for working with xcode/ios projects

Created: 2016-05-29 20:08:06.0

Updated: 2016-05-29 20:08:07.0

Pushed: 2016-05-29 20:08:37.0

Homepage:

Size: 969

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

node-xcode

parser/toolkit for xcodeproj project files

Allows you to edit xcodeproject files and write them back out.

Example
// API is a bit wonky right now
var xcode = require('xcode'),
    fs = require('fs'),
    projectPath = 'myproject.xcodeproj/project.pbxproj',
    myProj = xcode.project(projectPath);

// parsing is async, in a different process
myProj.parse(function (err) {
    myProj.addHeaderFile('foo.h');
    myProj.addSourceFile('foo.m');
    myProj.addFramework('FooKit.framework');

    fs.writeFileSync(projectPath, myProj.writeSync());
    console.log('new project written');
});
Working on the parser

If there's a problem parsing, you will want to edit the grammar under lib/parser/pbxproj.pegjs. You can test it online with the PEGjs online thingy at http://pegjs.majda.cz/online - I have had some mixed results though.

Tests under the test/parser directory will compile the parser from the grammar. Other tests will use the prebuilt parser (lib/parser/pbxproj.js).

To rebuild the parser js file after editing the grammar, run:

./node_modules/.bin/pegjs lib/parser/pbxproj.pegjs

(easier if ./node_modules/.bin is in your path)

License

MIT


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.