JSPM

xcode

3.0.2-nightly.20250303000242557.sha.c491d3a2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2306098
  • Score
    100M100P100Q186992F
  • License Apache-2.0

parser for xcodeproj/project.pbxproj files

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xcode) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    cordova-node-xcode

    NPM

    Node CI

    Parser utility for xcodeproj project files

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

    based on donated code from alunny / 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