2011-09-30 79 views
30

將facebook SDK整合到更新中,我得到四個文件的編譯器警告,在我的一個目標中,每個文件都會得到兩個警告。構建xcode/iPhone的規則

[WARN]警告:類型sourcecode.ch的無規則來處理文件 '$(PROJECT_DIR)/ APP_NAME /Facebook.h' 的結構的ARMv7

[WARN]警告:無規則來處理文件'$(PROJECT_DIR)/ APP_NAME /Facebook.h' 型sourcecode.ch的用於建築的ARMv6

和其他目標的每個文件只生成一個警告,

[WARN]警告:無規則處理文件'$(PROJECT_DIR)/ APP_NAME /FBConnect.h「型sourcecode.ch對於Facebook的SDK文檔中i386硬件架構

,他們告訴我的i386添加到構建設置有效的架構,但他們不說任何事情」構建規則「奇怪的是,我已經將相同的Facebook SDK整合到另一個應用程序中,沒有任何問題。我能看到的唯一區別就是這個項目已經有了兩個目標,而且這些警告中的每一個都只來自其中一個目標。任何人都可以給我一個線索如何爲這四個文件建立一個構建規則嗎?我需要armv6和armv7和i386的構建規則嗎?

構建設置完全相同,除了每個不同的-info.plist和不同的.pch文件。我應該補充一點,facebook功能在模擬器上工作正常,但不能在任何使用任何構建目標的測試設備中使用。

非常感謝。

回答

115

假設您使用的是Xcode 4,可能是因爲在編譯的C文件列表中有.h文件,所以依賴檢查程序很困惑。

因此....導航到您的目標的「構建階段」選項卡。 (點擊該項目,然後點擊目標名稱,然後點擊「Build Phases」選項卡)。

確保您沒有將任何.h文件拖入「編譯源」部分。

通常,在導入代碼時,只需將整批文件拖入該部分,不會意識到.h文件在技術上沒有編譯,並且依賴檢查程序不夠聰明,無法提供更有用的錯誤消息。

+0

非常感謝。我沒有意識到所有列出的其他文件都只有.m文件。我在那裏上了車,取下它解決了問題。隊友的歡呼聲。 – GeneCode

+0

感謝budy,我花了很多時間爲這個 – iBhavik

+0

謝謝,解決了我的問題.. – inancsevinc

8

http://dhilipsiva.blogspot.in/2012/10/xcode-warning-no-rule-to-process-file.html

名單應該只有.m文件。我不知道我們是否可以放入一個.c文件,但不應該有任何其他文件類型。我喜歡有些開發人員甚至將Javascript文件拖放到編譯源代碼中。如果您遇到同樣的問題,您應該從已編譯源列表中選擇remove any non '.m'文件。假設你在Xcode4上運行,這是你如何做到的。

打開您的項目目標的「構建階段」選項卡。 (點擊項目,然後點擊目標的名稱,然後點擊「構建階段」選項卡)。 在已編譯的源代碼部分,確保您沒有任何非.m文件的文件。

快樂黑客。

+3

+1表示應該刪除任何非.m文件。我被卡住了.c文件 –

+0

+1,用於刪除粗體中的任何非'.m'短語。我使用ZipArchive解壓縮下載的文件。所有的頭文件都是在運行時編譯的。按照描述移除頭文件,並且8個警告消失。 –