• Stars
    star
    204
  • Rank 192,009 (Top 4 %)
  • Language
    Swift
  • License
    MIT License
  • Created about 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Swift library for reading and writing Xcode project files in OpenStep format

XcodeEdit


Reading and writing the Xcode pbxproj file format, from Swift!

The main goal of this project is to generate project.pbxproj files in the legacy OpenStep format used by Xcode. Using this, a project file can be modified without changing it to XML format and causing a huge git diff.

Currently, this project is mostly used to support R.swift.

⚠️ Limited support for modificiation

At this time, there are only limited APIs for modifying a project file. Only features that are actually needed by R.swift are implemented. There is no generic way to modify the project strucuture.

Usage

This reads a xcodeproj file (possibly in XML format), and writes it back out in OpenStep format:

let xcodeproj = URL(fileURLWithPath: "Test.xcodeproj")

let proj = try! XCProjectFile(xcodeprojURL: xcodeproj)

try! proj.write(to: xcodeproj, format: PropertyListSerialization.PropertyListFormat.openStep)

Releases

  • 2.9.0 - 2022-11-07 - Add removePackage function to XCSwiftPackageProductDependency
  • 2.8.0 - 2021-11-17 - Add fields to PBXShellScriptBuildPhase
  • 2.7.7 - 2020-05-08 - Add support for remote swift packages
  • 2.7.6 - 2020-04-25 - Add support for SPM product dependencies
  • 2.7.5 - 2020-02-13 - Add support for PBXBuildRule
  • 2.7.4 - 2019-10-04 - Improved parsing of optional fields
  • 2.7.3 - 2019-07-28 - Use Swift native random function
  • 2.7.2 - 2019-07-28 - Improved suport for SPM
  • 2.7.0 - 2019-06-10 - Add suport for Xcode 13 SPM objects
  • 2.6.0 - 2019-01-23 - Improved error messages for broken project files
  • 2.5.2 - 2018-12-30 - Fixes incorrect generation of relative URLs, again
  • 2.5.1 - 2018-12-28 - Fixes incorrect generation of relative URLs
  • 2.5.0 - 2018-12-11 - Improve serialization for escaped identifiers in pbxproj
  • 2.4.2 - 2018-10-03 - Fix escaped strings in serializer
  • 2.4.0 - 2018-07-03 - Add support for SourceTreeFolder type PLATFORM_DIR
  • 2.3.0 - 2018-06-17 - Add support for PBXLegacyTarget
  • 2.2.0 - 2018-04-04 - Swift 4.1 support
  • 2.1.0 - 2018-01-23 - Add some specific modification functions for R.swift
  • 2.0.0 - 2017-12-17 - Support parsing for "broken" project files
  • 1.1.0 - 2017-05-07 - Error types now public
  • 1.0.0 - 2017-03-28 - Rename from Xcode.swift to XcodeEdit
  • 0.3.0 - 2016-04-27 - Fixes to SourceTreeFolder
  • 0.2.1 - 2015-12-30 - Add missing PBXProxyReference class
  • 0.2.0 - 2015-10-29 - Adds serialization support
  • 0.1.0 - 2015-09-28 - Initial public release

Licence & Credits

XcodeEdit is written by Tom Lokhorst and available under the MIT license, so feel free to use it in commercial and non-commercial projects.

More Repositories

1

SegueManager

Perform storyboard segues with closures, in Swift
Swift
133
star
2

CloudStorage

Swift
93
star
3

swift-json-gen

Generate Json encoders and decoders based on Swift structs with good error handling
JavaScript
76
star
4

Promissum

A promises library written in Swift featuring combinators like map, flatMap, whenAll, whenAny.
Swift
68
star
5

CoffeeSharp

CoffeeScript compilation for Windows
F#
57
star
6

AwesomePrelude

Yet another alternative Haskell Prelude, but this one is awesome!
Haskell
51
star
7

language-cil

Manipulating Common Intermediate Language AST in Haskell
Haskell
20
star
8

swift-cancellationtoken

CancellationToken in Swift, modelled after the .NET version
Swift
20
star
9

Statham

Swift library for decoding JSON
Swift
11
star
10

FunVM

A Functional intermediate language
Haskell
9
star
11

ScorchedCanvas

Multiplayer Scorched Earth clone!
JavaScript
8
star
12

bool-extras

A fold function for Bool in Haskell
Haskell
7
star
13

wol

A program and library to a send WoL Magic Packet, to remotely start a computer.
Haskell
5
star
14

feed2twitter

Send posts from a feed to Twitter
Haskell
4
star
15

codeanalysis-checknullable

Experimental Roslyn diagnostic extension
C#
4
star
16

jquery.event.combinators

jQuery Event Combinators
JavaScript
3
star
17

Datum

Swift library that makes dealing with timezone information explicit
Swift
3
star
18

codeanalysis-checkdependencyproperty

Experimental Roslyn diagnostic extension
C#
3
star
19

helloworld

An experimation project
Haskell
2
star
20

hackage2twitter

Send new Hackage releases to Twitter
Haskell
2
star
21

promises.js

Experimental JavaScript library for promises
JavaScript
2
star
22

dutchhug-nl

source code of DutchHUG.nl website
Haskell
2
star
23

PromissumAlamofire

Alamofire promise extensions
Swift
1
star
24

CatalystFullScreenVideo

Demo project showing full screen video in a Mac Catalyst app
Swift
1
star