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

13,133

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!

Share:
13,133
Para
Author by

Para

Please insert cool story here

Updated on June 07, 2022

Comments

  • Para
    Para almost 2 years

    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)

  • Para
    Para almost 9 years
    Yes, like I said in my question, I noticed the default is still 3.2, that's why I got curious about the format :) So it looks like there are no major changes, though something is probably happening behind the scenes.
  • Jiri Trecak
    Jiri Trecak almost 9 years
    I am sure we will know as soon as Swift 2 is stable and released :)
  • Para
    Para over 8 years
    Quick update: Xcode 7 and Swift 2 have been officially released, however nothing changed as to the Project Format. We might have to wait for Xcode 8... or maybe there is simply no answer to this question!
  • Justin Vallely
    Justin Vallely over 7 years
    Has anyone seen any changes with the new "Xcode 8.0 compatible" option?
  • NiñoScript
    NiñoScript over 7 years
    I see none (other than objectVersion = 48, whatever that value means)
  • Justin Vallely
    Justin Vallely about 7 years
    Xcode 8.2.1 still defaults to Xcode 3.2-compatible on new projects.
  • Raphael
    Raphael over 6 years
    Two years later, still nothing changed. Any new speculation, maybe with references?
  • iOS dev
    iOS dev over 5 years
    Just revisited this myself with Xcode 10. Aside from incrementing objectVersion and updating compatibilityVersion, it appears a minor change was made where LD_RUNPATH_SEARCH_PATHS is no longer stored as a whitespace separated list, but as a comma separated collection. Still, very minor.