xcode-project-format README

The project's README from github.com/apple/xcode-project-format. As one markdown file: README.md.

xcode-project-format

xcode-project-format is a Swift library for reading, writing, and manipulating Xcode's JSON-based project.xcproj format. It models the format as a rich set of value types nested under a single namespace, XCSchema, so consumers get precise, typed access to a project's structure instead of hand-parsing JSON.

The goal is to give the ecosystem a shared, accurate model of the Xcode project format — so tools like generators, linters, verifiers, and validators don't each have to reverse-engineer the format from scratch.

The package also ships xcprojformatter, a small CLI tool built on the library.

Getting started

Requirements

Installation

Add the package as a dependency in your Package.swift:

dependencies: [
    .package(url: "https://github.com/apple/xcode-project-format/", from: "0.1.0")
]

Usage

import XcodeProjectFormat

func listTargets(in projectURL: URL) throws {
    let projectData = try Data(contentsOf: projectURL)
    let project = try XCSchema.Project(jsonRepresentation: projectData)
    for target in project.targets {
        print(target.name)
    }
}

You'll find types for folders, file references, groups, targets, build phases, build rules, and the rest of the Xcode project model within this package.

Documentation

The project documentation is available at Swift Package Index.

To preview it locally:

swift package add-dependency https://github.com/swiftlang/swift-docc-plugin --from 1.5.0
swift package --disable-sandbox preview-documentation

Contributing

We welcome contributions within a defined scope. See CONTRIBUTING.md for what we accept, what's out of scope for now, and how to get started.

Support

License

Licensed under the Apache License 2.0.

xcode-project-format (apple/xcode-project-format)

Searching Database…

Что это такое?Библиотека от Apple на Swift для чтения, записи и работы с форматом project.xcproj — основанном на JSON формате проектов Xcode. В комплекте идёт небольшой консольный инструмент под названием 'xcprojformatter'.
Это библиотека или утилита командной строки?И то, и другое. Основа — библиотека, которая описывает формат проекта типизированными типами значений в одном пространстве имён 'XCSchema', а в пакет также входит 'xcprojformatter' — небольшой CLI, построенный на этой библиотеке.
Как добавить его в свой проект?Добавьте его как зависимость в ваш Package.swift через Swift Package Manager.
Какие версии Swift и macOS ему нужны?Swift 6.1 или новее и macOS 14 или новее.
Для кого это больше подходит — для разработчиков приложений или для тех, кто делает инструменты?В первую очередь для создателей инструментов: цель — общая и точная модель формата проектов Xcode, чтобы генераторам, линтерам, проверяющим и валидирующим утилитам не приходилось каждому заново разбирать этот формат с нуля.
Работает это только на Mac, или можно собирать и на Linux?Не только Mac: официально заявлено требование macOS 14+, но в README отмечено, что библиотека собирается и на платформах не-Darwin; подробности — в Package.swift.
Какие части проекта Xcode покрывает модель XCSchema?Типы XCSchema покрывают папки, ссылки на файлы, группы, таргеты, фазы сборки, правила сборки и всё остальное в модели проекта Xcode.
Чем это лучше, чем самому парсить JSON из файла проекта?Вы получаете точный типизированный доступ к структуре проекта вместо ручного разбора «сырого» JSON, причём с опорой на общую и точную модель формата.
Creator
apple
Size
0.1 MB
Stars
501
Updated
CommitOct 08
Age
1mo
Commits · 90 Days