Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apache/cordova-node-xcode
Apache cordova
https://github.com/apache/cordova-node-xcode
cordova cplusplus csharp java javascript library mobile nodejs objective-c
Last synced: 6 days ago
JSON representation
Apache cordova
- Host: GitHub
- URL: https://github.com/apache/cordova-node-xcode
- Owner: apache
- License: apache-2.0
- Created: 2017-04-08T07:00:06.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-08T13:57:41.000Z (6 months ago)
- Last Synced: 2024-12-15T06:33:07.811Z (10 days ago)
- Topics: cordova, cplusplus, csharp, java, javascript, library, mobile, nodejs, objective-c
- Language: JavaScript
- Homepage:
- Size: 1.22 MB
- Stars: 196
- Watchers: 20
- Forks: 98
- Open Issues: 45
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# cordova-node-xcode
[![NPM](https://nodei.co/npm/xcode.png?compact=true)](https://nodei.co/npm/xcode/)
[![Node CI](https://github.com/apache/cordova-node-xcode/workflows/Node%20CI/badge.svg?branch=master)](https://github.com/apache/cordova-node-xcode/actions?query=branch%3Amaster)
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](https://github.com/alunny/node-xcode)
## Example
```js
// 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