.xib文件不在编译源构建阶段,但仍然正确构建;怎么会这样?

时间:2013-04-07 17:32:32

标签: ios xcode build-process xib nib

当您从具有.xib文件的Xcode模板开始时,该.xib文件将在Compile Sources构建阶段中列出。这对我来说很有意义,因为在构建过程中,.xib文件需要转换为.nib文件(带ibtool),并且它是。

但是在重命名我的.xib文件并添加一些新文件时,我最终遇到了编译源构建阶段中列出了我的.xib文件的 none 的情况。相反,它们都列在“复制文件”构建阶段中。我无法解决这个问题。 (不要让我开始关于 。)

但事实证明我没有必要解决它!当我构建时,我可以查看构建的应用程序的包,我看到它有.nib文件,而不是.xib文件。 .xib文件被复制到资源文件夹中,即使它们处于复制文件构建阶段;它们正在编译,即使它们不在编译源构建阶段。

我可以通过查看构建日志确认这一点:

CompileXIB "MyApp/en.lproj/ViewController~iphone.xib"
CompileXIB "MyApp/en.lproj/ViewController~ipad.xib"

这怎么可能?

编辑:现在我无法重现我最初的前提!正如一位受访者所说,模板没有将.xib文件放在Compile Sources构建阶段。然而,我当然最终遇到了一些.xib文件处于Compile Sources构建阶段而一些处于Copy构建阶段的情况,这让我很困惑。

1 个答案:

答案 0 :(得分:1)

当我使用“Cocoa Application”模板为OS X创建一个全新的Xcode项目时,项目的唯一.xib文件未列在“编译源”下,它列在“复制包资源”下。所以我不确定你的.xib是如何/为什么首先被列在Compile Sources下面。

至于如何使用CompileXIB命令自动编译它们,我怀疑这是由于Xcode的Build Rule称为“Interface Builder XIB编译器”,它运行所有Interface Builder文件。