An API for manipulating Xcode project files.
Adding Source Files to a Project
Project* project = [[Project alloc] initWithFilePath:@"MyProject.xcodeproj"]; Group* group = [project groupWithPath:@"Main"]; ClassDefinition* classDefinition = [[ClassDefinition alloc] initWithName:@"MyNewClass"]; [classDefinition setHeader:@"<some-header-text>"]; [classDefinition setSource:@"<some-impl-text>"]; [group addClass:classDefinition]; [project save];
Specifying Source File Belongs to Target
File* sourceFile = [project fileWithName:@"MyNewClass.m"]; Target* examples = [project targetWithName:@"Examples"]; [examples addMember:sourceFile]; [project save];
Adding a Xib File
This time, we'll use a convenience method on xcode_Group to specify the targets at the same time:
XibDefinition* xibDefinition = [[XibDefinition alloc] initWithName:@"MyXibFile" content:@"<xibXml>"]; [group addXib:xibDefinition toTargets:[project targets]]; [project save];
Adding a Framework
FrameworkDefinition* frameworkDefinition = [[FrameworkDefinition alloc] initWithFilePath:@"<framework path>" copyToDestination:NO]; [group addFramework:frameworkDefinition toTargets:[project targets]]; [project save];
Setting copyToDestination to YES, will cause the framework to be first copied to the group's directory within the project, and subsequently linked from there.
The Source/Tests folder contains further usasge examples. A good starting point is to run the test target in Xcode. This will extract a test project to the /tmp directory, where you'll be able to see the outcome for yourself.
Just the Framework
Open the project in XCode and choose Product/Build.
Includes Unit Tests, Integration Tests, Code Coverge and API reports installed to Xcode.
Requirements (one time only)
In addition to Xcode, requires the Appledoc and lcov packages. A nice way to install these is with MacPorts.
git clone https://github.com/tomaz/appledoc.git sudo install-appledoc.sh sudo port install lcov
NB: Xcode 4.3+ requires command-line tools to be installed separately.
Running the build (every other time)
Feature Requests and Contributions
. . . are very welcome.
If you're using the API shoot me an email and tell me what you're doing with it.
Xcode-editor has been tested on Xcode 4+. It should also work on earlier versions of Xcode. The AppCode IDE from JetBrains is not yet supported.
- Jasper Blues - firstname.lastname@example.org
- © 2011 - 2012 expanz.com
Apache License, Version 2.0, January 2004, http://www.apache.org/licenses/