2015-09-24 22 views
14

不可否認,這已經有一段時間了,因爲我已經對我的項目運行了一個pod更新。今天,我試圖做到這一點,並遇到問題。Pod更新正在刪除「目標支持文件」,但未更新我的項目設置

運行'pod更新'後,項目不會編譯。這是我注意到的。更新本身似乎運行良好,就像正常一樣。我確實注意到'Pods/Target Support Files'中的所有文件已被刪除。

當我試圖打造,我得到這樣一個錯誤我的大多數莢:

lang: error: no such file or directory: '/Users/logan/development/ProjectNameRemoved/src/Pods/Target Support Files/Pods-AJNotificationView/Pods-AJNotificationView-dummy.m' 

clang: error: no input files

當我去到構建階段的豆莢這個錯誤,我可以看到,虛擬.m文件仍然在那裏,即使它不存在: dummy file

刪除所有這些似乎並沒有幫助,因爲後來我開始得到以下錯誤:

second error

挖下來到目標的設置,我可以看到GCC前綴頭仍然被設置爲使用一個不存在的PCH文件:

prefix header

我真的不知道該去哪裏從這裏。似乎pod更新正在刪除某些文件,但我的pbxproj未被更新爲關聯這些更改。我是否需要弄清楚如何手動執行此操作?

我目前正在運行的XCode7和的CocoaPods 0.38.2

+1

我們從來沒有真正「解決」我們的問題。最後,我們不得不從頭開始使用CocoaPods。我使用https://github.com/kylef/cocoapods-deintegrate刪除Cocoapods,然後使用我們的舊podfile運行新的pod安裝。我們遇到了很多我們通過http://stackoverflow.com/questions/23539147/xcode-ld-library-not-found-for-lpods和https://github.com/CocoaPods/CocoaPods/issues解決的錯誤/ 2053。總體而言,CocoaPods在過去12個月中消耗的時間更多。沒有它,我們將前進。 – LLooggaann

回答

12

我在重構項目時遇到了這個問題。刪除CocoaPod後,我有剩餘的被引用。清理緩存和重建無法解決問題。

我能用上面用戶評論中引用的cocoapods-deintegrate來解決它。

步驟來解決:

  1. 關閉在Xcode項目,使您不必在Xcode中扔你有關的警告版本之間的差異(假設你使用版本控制,這是一個很好想法,如果你搞亂CocoaPods)。從項目的目錄

    gem install cocoapods-deintegrate

  2. 類型pod deintegrate

  3. 通過鍵入終端安裝cocoapods-deintegrate

  4. 在Xcode中打開項目,清理緩存並重建。你的Podfile應該仍然存在... 讓它獨自一人。我們馬上就會明白這一點。

  5. 關閉該項目。

  6. 類型pod install

  7. 打開項目,清理緩存和重建。

這些是我遵循的步驟到resolve this issue

更新:

我也用這個方法來解決它出現了,當我刪除了一類文件,而不是文件本身的引用鏈接錯誤。這樣做,我得到了這個錯誤:

error: linker command failed with exit code 1 (use -v to see invocation)

+1

是的,這就是我們所做的,所以我會給你接受的答案。話雖如此,我們已經轉向迦太基,並從未回頭看過CocoaPods。 – LLooggaann

+0

不錯 - 這些步驟在React Native中也適用於我。 (構建時,目標支持文件目錄爲空)。 –

+0

拯救生命的人,我曾經解決了我的鏈接器錯誤。更新我的項目cocoapod文件後,我遇到了同樣的問題,它顯示我liker錯誤的文件不存在。感謝你的回答。 –

0

你能看到,如果在這個職位的回答可以幫助?

Xcode install on OSX 10.9 - clang: error: no input files

我會嘗試重建我的項目。

+0

我可以解決輸入文件錯誤,它暴露了預編譯後的頭錯誤...最後,如果我解決了這個問題,那麼庫不再工作。假設是因爲他們錯過了pch。 – LLooggaann

0

我剛剛配置我的podfile以適應多個目標後,同樣的事情。我只是要使用上面的建議答案,但在做任何事情之前,我都在git中進行了更改。這解決了問題。 git commit包含了很多由cocoapods完成的文件刪除和添加操作,所以我想有些東西仍然存在。