Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode Project Format: what are the differences between 3.1, 3.2, 6.3 and 8.0?

When I open a project in Xcode 9 (or previous versions) and check the File Inspector, there's a section called Project Document, with a combo box named Project Format.
The available options (in Xcode 9) are Xcode 3.1-compatible, Xcode 3.2-compatible, Xcode 6.3-compatible, and Xcode 8.0-compatible:

Project Format Options

What are the differences between those formats?

-- UPDATE HISTORY (as of 20 May 2019) --

I originally asked this question when Xcode 6.4 was around.
Xcode 6.4's list included Xcode 3.1-compatible, Xcode 3.2-compatible and Xcode 6.3-compatible, and defaulted to Xcode 3.2-compatible.
Xcode 7 didn't introduce any changes.
Xcode 8 added an Xcode 8.0-compatible item.
Xcode 9 changed the default for new projects to Xcode 8.0-compatible. (8 Oct 2017)
Xcode 10.2 added Xcode 9.3-compatible, Xcode 10.0-compatible (May 2019)

like image 368
Para Avatar asked Jul 16 '15 13:07

Para


People also ask

What is Xcode project format?

The Xcode project file is an old-style plist (Next style) based on braces to delimit the hierarchy. The file begins with an explicit encoding information, usually the UTF-8 one. This means that the file must not bear a BOM (Byte Ordering Mark) at its start or the parsing will fail.

How do I change the project format in Xcode?

It's highly unlikely that the project format has any bearing on code completion, but if you really want to change it, select the project itself in the file navigator and open the right-side utility pane. In the first tab is the project format drop down.

How do I change Xcode compatibility?

If you want to configure the Xcode-compatible project settings in Xcode, select File | Open Project in Xcode from the main menu and configure the settings there. AppCode will sync the modifications to the settings automatically as soon as you apply them in Xcode.


1 Answers

There does not seem to be any major breaking change in this format change (I tried few of my project, nothing changed in the xml structure itself except the version parameter..).

As far as I remember, there were few project formats before that, some of which actually had major changes, but that is probably not going to happen again because that was in the times of major structural changes to iOS, like from iOS2 to iOS3.

Also, just side note, the default for new projects is still 3.2 so it is very likely that 6.3 is basically for testing and version that they will force later will be -7.

My best guess would be that the new format is there for Swift 2 and the way how modules / dependencies are handled in there, as it for sure requires some additional data to be present in the project. But to be 100% sure we would need information from somebody on the Apple Team.

Hope it helps!

like image 144
Jiri Trecak Avatar answered Sep 16 '22 12:09

Jiri Trecak