我有一个相当奇怪的问题,我还不能完全理解,我想在这里记录它,因为我还没有在其他任何地方看到过这个问题。
我有一个在 Xcode3 下开发的 iPhone 应用程序。这工作得很好,我做了一些在设备上也能完美工作的临时分发。
然后我升级到 Xcode4,下次我进行临时分发时,我的应用程序在启动时崩溃了。不用说它在模拟器和连接到我的开发机器的设备中工作。崩溃日志没有太大帮助,它们在对 UIApplication 的标准调用中表明 main.m 中发生了崩溃。当然,我从未更改过该文件。经过多次挖掘和拼凑,我发现了问题所在。
Xcode 认为我的 *.xib 文件的文件类型是 text.xml 而不是 file.xib,因此只是将这些文件复制到应用程序包而不是编译它们。然后该应用程序在启动时崩溃,因为它找不到 MainWindow.nib 文件。
通过追溯我的 subversion 签入,我发现 xcodeproj 中 project.pbxproj 文件中记录的文件类型在 Xcode4 升级后的第一次签入中发生了变化。我不知道这是如何发生的或为什么发生的。我也无法通过 UI 看到我将如何影响该设置,我什至没有打开一些改变的 xib。(为了解决我的问题,我在文本编辑器中修改了 pbxproj 文件)。
那么,是否有人对这可能发生的方式或原因有任何见解?