Xcode项目格式:3.1,3.2,6.3和8.0之间有什么区别?

Par*_*ara 65 macos xcode objective-c ios swift

当我在Xcode 9(或以前的版本)中打开一个项目并检查文件检查器时,有一个名为Project Document的部分,其中有一个名为Project Format的组合框.
可用的选项(在Xcode中9)有Xcode 3.1-compatible,Xcode 3.2-compatible,Xcode 6.3-compatible,和Xcode 8.0-compatible:

项目格式选项

这些格式有什么区别?

- 更新历史(截至2017年10月8日) -

Xcode 6.4出现时,我最初问过这个问题.
Xcode的6.4的名单包括Xcode 3.1-compatible,Xcode 3.2-compatibleXcode 6.3-compatible,并默认为Xcode 3.2-compatible.
Xcode 7没有引入任何变化.
Xcode 8添加了一个Xcode 8.0-compatible项目.
Xcode 9将新项目的默认值更改为Xcode 8.0-compatible.

Jir*_*cak 29

在这种格式变化中似乎没有任何重大的突破性变化(我尝试了很少的项目,xml结构本身没有任何变化,除了版本参数..).

据我所知,之前几乎没有项目格式,其中一些实际上有重大变化,但这可能不会再发生,因为那是在iOS的重大结构变化时期,如从iOS2到iOS3.

另外,请注意,新项目的默认值仍为3.2,因此很可能6.3基本上用于测试,他们将在以后强制执行的版本为-7.

我最好的猜测是Swift 2的新格式以及模块/依赖关系的处理方式,因为它肯定需要在项目中存在一些额外的数据.但要100%确定我们需要Apple团队成员提供的信息.

希望能帮助到你!

  • 快速更新:Xcode 7和Swift 2已正式发布,但项目格式没有任何变化.我们可能不得不等待Xcode 8 ...或者可能根本没有回答这个问题! (2认同)
  • 两年后,仍然没有改变.任何新的推测,也许有参考? (2认同)
  • 刚刚用 Xcode 10 自己重新审视了这个。 除了增加 `objectVersion` 和更新 `compatibilityVersion`,似乎做了一个小改动,其中 `LD_RUNPATH_SEARCH_PATHS` 不再存储为空格分隔的列表,而是作为逗号分隔的集合。仍然,非常轻微。 (2认同)