2011-04-03 79 views
4

我有一個相當奇怪的問題,我不能完全瞭解底下,因爲我沒有看到這個問題在其他地方討論過,所以我想在這裏記錄它。Xcode4損壞的筆尖文件

我有一個iPhone應用程序,我正在Xcode3下開發。這是完美的工作,我做了一些特別的分佈,也在設備上完美的工作。

然後我升級到Xcode4,下次我做了臨時分發我的應用程序在啓動時崩潰。毋庸置疑,它在模擬器和連接到我的開發機器的設備中起作用。崩潰日誌沒有太大幫助,他們在標準的UIApplication調用中指出了main.m中的崩潰。當然,我從來沒有改變過這個文件。經過多次挖掘和拼湊,我發現了這個問題。

Xcode認爲my * .xib文件的文件類型是text.xml而不是file.xib,因此僅將這些文件複製到應用程序包而不是編譯它們。該應用程序在啓動時崩潰,因爲它無法找到MainWindow.nib文件。

通過追溯我的顛覆檢查,我發現xcodeproj中的project.pbxproj文件中記錄的文件類型在Xcode4升級後的第一次簽入中發生了變化。我不知道如何或爲什麼發生。我也不能透過UI看到我會如何影響這個設置,甚至沒有打開一些改變了的xib。 (爲了解決我的問題,我在文本編輯器中修改了pbxproj文件)。

那麼,有沒有人有任何的洞察力,知道如何或爲什麼會發生這種情況?

+0

好奇。有條不紊地追查,那個男人。 :-)我認爲這是Xcode 4.0而不是4.0.1更新? – 2011-04-03 21:45:36

+0

是的,它是4.0,它確實需要一些追蹤! – Andy 2011-04-04 22:34:00

回答

0

下面是爲我們修復它。在廈門國際銀行被確定爲不出現在Xcode中得到認可4.

查找與此類似的在你的項目文件(用文本編輯器打開)行的「explictFileType」 ......

C9B10BEA11D9084800F10866/* Record.xib */= {isa = PBXFileReference; explicitFileType = file.xib; path = Record.xib; sourceTree =「」; };

,並更改爲這個...

C9B10BEA11D9084800F10866/* * Record.xib/= {ISA = PBXFileReference; lastKnownFileType = file.xib; path = Record.xib; sourceTree =「」; };

+0

嗯,只是檢查了project.pbxproj的版本,它總是使用lastKnownFileType。 28AD733E0D9D9553002E5188/* MainWindow.xib */= {isa = PBXFileReference; lastKnownFileType = text.xml;路徑= MainWindow。廈門國際銀行; sourceTree =「」; }; – Andy 2011-04-05 21:10:09

2

我遇到了與我已經遷移到xcode4的現有xcode3項目相同的問題。

我試過@jaylinn的解決方案,但我也發現該文件已經有lastKnownReference。

我已經能夠通過從項目中刪除.xib文件(僅刪除參考)來解決此問題,然後將它們重新添加到項目中。這有點痛苦,但它有效。

希望有所幫助。 -Mike