2017-03-03 20 views
1

我有一個Xcode項目(目標c,Xcode 8.2.1)。可可豆莢的所有源文件被編譯兩次

每當我做「清潔構建」並再次構建時,需要很長時間。我開始研究這個的原因,並且我注意到我所有的pod源文件都被編譯了兩次(我猜測編譯時間會增加一倍)。

在Xcode的頂部,可以看到構建的狀態,因爲它的進展

enter image description here

您可以在Xcode中上面的截圖中看到正在編制142個源文件的境界吊艙,但它只有71個源文件。我所有其他的豆莢都有相同的問題。

我測試了創建一個新的xcode項目並添加豆莢,然後我沒有遇到同樣的問題,因爲在這個項目中。

@Bash建議我可能將構建設置「Build Active Architecture Only」設置爲「No」,但我已經檢查過它並將其設置爲「Yes」。

有什麼想法可能是這裏的問題?

+0

境界只有〜70的源文件。當你只需要爲一個架構創建時,是否有可能爲多種架構構建應用程序?你可以通過檢查Xcode中的「Build Active Architecture Only」配置設置來確定這一點。 – bdash

+0

感謝您的評論bdash。 「僅生成活動架構」設置爲「是」,所以這不是問題。我進一步挖掘了一下,結果發現我所有的豆莢源文件都是重複的,而不僅僅是領域(最初我剛剛發現了該豆莢,因爲它編譯時間太長)。我會相應地更新我的問題。 – Jonas

回答

1

當您爲構建配置設置自定義名稱時,這往往會發生。也就是說,如果您的名稱不是DebugRelease,CocoaPods會將這些配置視爲發佈配置。除此之外,這意味着啓用優化並將這些Pod的Build Active Architecture Only標誌設置爲YES。這兩個選項都會妨礙Debug配置的編譯時間。

要修復它,您必須指定哪些配置是Debug。繼the docs,你必須改變你的Podfile所以它看起來是這樣的:

project 'MyApp', 'MyAppRelease' => :release, 'MyAppDebug' => :debug 
+0

Victor,您的解決方案解決了問題。謝謝!! – Jonas

0

不幸的是,Realm是一個包含大量C++和Objective-C++源文件的大型項目,並且通常需要一段時間才能編譯(特別是在清理構建文件夾之後)。 Realm製作多長時間取決於Xcode運行在哪種計算機上,但是您提供的數字似乎對於較舊的硬件來說並不合理。

+0

感謝您的評論AustinZ。我知道Realm也需要很長時間,但是正如bdash指出的那樣,所有源文件都被添加了兩次,這使Realm(以及所有其他Pod)的編譯時間翻了一番。 – Jonas

相關問題