| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
An API for manipulating Xcode project files.
XCProject* project = [[XCProject alloc] initWithFilePath:@"MyProject.xcodeproj"];
XCGroup* group = [project groupWithPathFromRoot:@"Main"];
XCClassDefinition* classDefinition = [[XCClassDefinition alloc] initWithName:@"MyNewClass"];
[classDefinition setHeader:@"<some-header-text>"];
[classDefinition setSource:@"<some-impl-text>"];
[group addClass:classDefinition];
[project save];XCSourceFile* sourceFile = [project fileWithName:@"MyNewClass.m"];
XCTarget* examples = [project targetWithName:@"Examples"];
[examples addMember:sourceFile];
[project save];This time, we'll use a convenience method on XCGroup to specify the targets at the same time:
XCXibDefinition* xibDefinition = [[XCXibDefinition alloc] initWithName:@"MyXibFile" content:@"<xibXml>"];
[group addXib:xibDefinition toTargets:[project targets]];
[project save];XCFrameworkDefinition* frameworkDefinition =
[[XCFrameworkDefinition 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.
XCSourceFileDefinition* sourceFileDefinition = [[XCSourceFileDefinition alloc]
initWithName:@"MyImageFile.png" data:[NSData dataWithContentsOfFile:<your image file name>]
type:ImageResourcePNG];
[group addSourceFile:sourceFileDefinition];
[project save];XCSourceFileDefinition* header = [[XCSourceFileDefinition alloc]
initWithName:@"SomeHeader.h" text:<your header text> type:SourceCodeHeader];
[group addSourceFile:header];
[project save];subProjectDefinition = [XCSubProjectDefinition withName:@"mySubproject" projPath=@"/Path/To/Subproject" type:XcodeProject];
[group addSubProject:subProjectDefinition toTargets:[project targets]];[group removeSubProject:subProjectDefinition]; //TODO: project should be able to remove itself from parent.//Creates the reference in the project and writes the contents to disk. If a file already exists at the
//specified location, its contents will be updated.
[definition setFileOperationStyle:FileOperationStyleOverwrite]; //Creates the reference in the project. If a file already exists at the specified location, the contents will
//not be updated.
[definition setFileOperationStyle:FileOperationStyleAcceptExisting]; //Creates the reference in the project, but does not write to disk. The filesystem is expected to be updated
//through some other means.
[definition setFileOperationStyle:FileOperationStyleReferenceOnly]; You've just read them! 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.
Open the project in XCode and choose Product/Build.
Includes Unit Tests, Integration Tests, Code Coverge and API reports installed to Xcode.
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 lcovNB: Xcode 4.3+ requires command-line tools to be installed separately.
ant . . . are very welcome.
If you're using the API shoot me an email and tell me what you're doing with it.
Thanks!
Apache License, Version 2.0, January 2004, http://www.apache.org/licenses/
| Back | FazBrowse Home | New Git URL |