Skip to content

NativeScript/nativescript-dev-xcode

Folders and files

NameName
Last commit message
Last commit date
Mar 22, 2019
Mar 19, 2019
Dec 11, 2018
Mar 25, 2019
Oct 6, 2017
Dec 19, 2018
Oct 31, 2012
Mar 25, 2019
Oct 6, 2017
Mar 21, 2019
Jan 15, 2019
Oct 6, 2017
Mar 19, 2019

Repository files navigation

nativescript-dev-xcode

Build Status

Parser utility for xcodeproj project files

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

Forked from: apache/cordova-node-xcode

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 https://pegjs.org/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:

npm run pegjs

(and be sure to restore the Apache license notice in lib/parser/pbxproj.js before committing)

License

Apache V2