Archive for September 17, 2026

Thursday, September 17, 2026

Xcode’s New .xcproj Files Are JSON

Apple:

Xcode now supports a JSON-based project format (.xcproj) that’s more readable, merge-friendly, and easier for coding agents to edit. Enable it in the file inspector. Projects using .xcproj also open in earlier versions of Xcode 27. Learn more in Updating your Xcode project configuration file format.

Fatbobman:

[The] new project.xcproj caught my eye. What it replaces is project.pbxproj, the build graph inside the .xcodeproj bundle, not the bundle itself.

[…]

In the age of agents, the drawbacks of pbxproj are amplified further. A great many IDs carry both object identity and cross-references, so an agent modifying a project usually has to locate the right object in a flat table, then update several mutually referencing places in step, all while trying to keep the serialized output faithful to Xcode’s conventions.

[…]

From a flat ID table to a tree that mirrors the UI: instead of dumping everything into objects, it unfolds into structures like files / targets / build-settings, so diffs look closer to the operations you actually performed in the interface;

The direction of relationships is reversed: a file can declare which targets it belongs to via target-membership, so adding a file no longer means editing several mutually referencing places at once;

Simon B. Støvring:

Developers have been screaming for a friendlier Xcode project format for years. I’m one of them.

Tony Arnold:

I’ve been waiting for something like this for most of my career! 🎉

Rob Napier:

It does feel like another case of “we’ve quickly done a thing to help AI that we’ve been unwilling to do for years to help humans.” I’m seeing that happen across the industry.

It is very welcome and appreciated, and lots of thanks to the teams involved. It’s also frustrating that it took “it can help AI” to make it happen.

Apple:

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.

Helge Heß:

Didn’t most people switch to local SPM projects anyways? Those are the new xcproj that have to be replaced with sth sensible 🙃

Fatbobman:

What the community has actually been waiting years for is a project manifest along the lines of Package.swift: something written by people, read by people, and reviewed by people, rather than a more modern encoding of the IDE’s internal database.

Previously:

Jumping to 27.2

Joe Rossignol:

Apple just seeded the first beta of iOS 27.2 to developers for testing. Yes, you read that correctly: iOS 27.2, not iOS 27.1.

[…]

Apple previously announced that the iPhone Duo will ship with iOS 27.1, which means that software version will contain all sorts of references to the device hidden within the code. If an iOS 27.1 beta were to have been released today, it could have spoiled some smaller iPhone Duo details that did not make it into Apple’s event.

John Gruber:

So, putting beta releases aside, we’ll see the versions hit the public in numeric order:

  • All OS 27.0 releases: two days ago.
  • iOS 27.1: October 23, exclusively on the iPhone Duo.
  • All OS 27.2.0 releases: probably in late October, after the 23rd, but with the Duo remaining on its own 27.1 branch.

[…]

Maybe Duo convergence will wait for 27.3, but I think it’ll be a 27.2.x update.

[…]

Something similar happened back in 2010 with the original iPad, which launched in April 2010 running what was then still called iPhone OS, version 3.2.

Steve Troughton-Smith:

iPhone Duo being completely disconnected from the iOS update cycle is very likely why its software features didn’t leak — wouldn’t surprise me if iOS 27.1 is unique to that device, and the rest of the lineup skips it (or gets some security updates, iOS 27.1 in name only)

Xcode 27.2 Beta Release Notes:

The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.

John Gruber:

Developers wanted this SDK a week ago. And when day one preorder buyers start using their Duos on October 23, they’re going to wish Apple had shipped this SDK last week too.

Der Teilweise:

What annoys me about Apple releasing Xcode 27.2 Beta 1 before they release Xcode 27.1 Beta 1 is that there was absolutely no need to release 27.2 Beta 1. They could just have postponed it. Nobody asked for 27.2 Beta 1. What version are we supposed to use? One for releasing, one for Duo, one for fun?

Previously: