XcodeEdit

develop

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

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.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.

Description

  • Swift Tools 5.0.0
View More Packages from this Author

Dependencies

  • None
Last updated: Fri Oct 22 2021 14:11:27 GMT-0500 (GMT-05:00)