2013-10-28 52 views
23

我只是打了一個磚牆,xCode不想解析我的Info.plist文件。我用先前備份的較舊(相同)版本的文件替換了多次文件,而且我仍然收到相同的錯誤。Xcode「無法解析Info.plist的內容」

下面是完整的錯誤消息:

couldn't parse contents of '/Users/...Info.plist': The data couldn’t be read because it isn’t in the correct format. 

我就這一個毫無頭緒。我正在使用xCode 5.0.1,小牛

回答

2

看起來像用備份替換文件,然後刪除Organizer中項目的派生數據就是治癒。希望這可以幫助別人。

+0

我試圖替換plist文件,以及項目文件,我仍然收到錯誤。啊! – ganders

+0

這也解決了我的問題。 – Tander

10

此問題的另一個原因可能來自嘗試將URL(實際上只是斜線等)放入您的app-Info.plist中。

通過在項目構建設置中簡單地提高Info.plist Other Preprocessor Flags選項中的-traditional標誌來解決此問題。

enter image description here

+2

OMG就是這樣OBSCURE,但它修復了我的問題!謝謝!!在我的例子中,我的plist中有一個Sparkle SUFeedURL,這顯然導致預處理器變得瘋狂。你甚至在哪裏找到了「傳統」的文檔?這是什麼意思? – nevyn

1

在構建適用於iOS,每當默認方向設置爲自動旋轉Info.plist中可能會被破壞。該Info.plist文件是正確創建的第一個構建,但隨後在這一點上的Xcode構建失敗,該項目建立在......

<key>UIInterfaceOrientation</key> 
<string></string> 
</string> 

...結果。

+0

除了刪除文件並重新生成文件之外,是否有修復? – Andrew

0

我有同樣的錯誤,並意識到問題是我有一個URL(例如http://example.com/something)作爲我的Info.plist中的值,並且我剛打開它的預處理(沒有-traditional標誌) 。顯然Xcode會將//作爲註釋標記,並省略其餘行。

我發現A-周圍的工作是接受預處理器,就像這樣: http:/${}/example.com/something,哪那麼它看起來並不像Xcode的評論通過把一個空字符串變電站在中打破了//,但是在預處理之後它會回到正常的URL。

2

當git合併引發衝突時,我親自毀了文件。 .plist是一個XML文件,並添加了git衝突< < < <和>>>>在那裏標記差異。

在Finder中找到.plist文件(在您的項目文件夾中)。在文本編輯器中打開它,找到看起來不合適的XML行,刪除它們,並確保刪除重複的XML行/節點(由於前後git記錄的更改)。

45

這是檢測錯誤發生在哪條線上的最佳方法之一。

剛去那裏的plist文件存在的目錄,然後寫在終端 - 此命令>

plutil filename.plist 
+3

我知道這是感恩的疲憊,但這個小技巧只是讓我的一天!我最終會發現一個文本編輯器的合併指標,但實用程序指出我的權利!謝謝! –

+0

完美答案。冉命令,它給了我行號。通過xcode,右鍵單擊plist,作爲源代碼打開並上線。原來捆綁號碼重複了2次。所以我刪除了一個。清理和建造。項目成功運行。 – TharakaNirmana

+0

這是特別有用的,因爲你的plist可以是有效的xml,但仍然是一個無效plist – Lewis42

2

我認爲你已經使用源代碼管理工具,您可以使用基本的文本編輯工具,而不Xcode中打開這個plist中,命令+ F查找 「< < < < <」 或 「>>>>>」,那麼你可能會發現錯誤字符串,如:

<<<<<<< .mine 

>>>>>>> .r605 

選擇正確的字符串,DELET另一個,錯誤是解決!

-2

根據@Vizllx的方式,我遇到了同樣的錯誤,仍然錯誤。然後我用Sublime Text打開info.plist,發現代碼衝突。