我有一個使用CocoaPods的iOS項目。一切都很順利,直到另一位開發人員開始在同一個項目上工作。他做出了一些改變(據我所知只做了代碼),並在回購協議中創建了一個新分支。我檢查了他的分支,並試圖建立它,但我得到一個錯誤:未找到ASLogger/ASLogger.h文件。iOS - 編譯失敗,CocoaPods無法找到頭文件
即使我刪除了整個項目並創建了一個新副本並使用'pods安裝'。構建失敗仍然存在。你有什麼想法可以解決問題的地方嗎?如果你需要更多的信息,請問。
我有一個使用CocoaPods的iOS項目。一切都很順利,直到另一位開發人員開始在同一個項目上工作。他做出了一些改變(據我所知只做了代碼),並在回購協議中創建了一個新分支。我檢查了他的分支,並試圖建立它,但我得到一個錯誤:未找到ASLogger/ASLogger.h文件。iOS - 編譯失敗,CocoaPods無法找到頭文件
即使我刪除了整個項目並創建了一個新副本並使用'pods安裝'。構建失敗仍然存在。你有什麼想法可以解決問題的地方嗎?如果你需要更多的信息,請問。
的wiki就如何解決這一問題的建議:
If Xcode can’t find the headers of the dependencies:
Check if the pod header files are correctly symlinked in Pods/Headers and you are not overriding the HEADER_SEARCH_PATHS (see #1). If Xcode still can’t find them, as a last resort you can prepend your imports, e.g. #import "Pods/SSZipArchive.h".
請問有人可以詳細說明如何「檢查pod頭文件是否在Pod/Headers中正確符號鏈接」? – 2012-10-16 20:05:03
請查看我的回答以上有關如何檢查符號鏈接的答案 – brainray 2012-12-27 17:35:50
在破壞導入語句之前,請同時參閱有關配置的brainray的回答。 – 2013-02-11 12:06:50
更新
,因爲我原來的答覆,即得到了downvote我已經更新了這一點,所以我希望這有助於。如果確實如此,希望它能讓我的投票回來。
如果標題未被導入,您可能在HEADER_SEARCH_PATHS
中有衝突。嘗試並將$(inherited)
添加到構建設置中的標題搜索路徑,以確保它從CocoaPods中提取包含在.xcconfig文件中的任何搜索路徑。
這應該有助於解決任何衝突並正確導入源代碼。
我曾經遇到過問題:在刪除或移動.svn子目錄時,應用程序和'svn受阻文件夾問題'中未檢測到Pod文件: 解決方案:通過以下步驟: 1.僅從應用程序卸載CocoaPods。 xcodeproj文件存在(參考:http://stackoverflow.com/questions/16427421/how-to-remove-cocoapods-from-a-project) 2.再次安裝podfiles(參考:http://www.raywenderlich.com/12139 /引入到cocoapods) 3.在應用程序的目標「HEADER_SEARCH_PATHS」和「OTHER_LDFLAGS」中添加了$(繼承)標誌。 – 2014-04-16 12:09:44
您可能還需要將$(繼承)添加到FRAMEWORK_SEARCH_PATHS設置中。 – George 2014-05-25 16:55:39
@ AlphonseR.Dsouza你的解決方案爲我工作 - 感謝一百萬加入$(繼承)給OTHER_LDFLAGS!應該在項目設置或目標設置中添加$(繼承)$ – 2015-12-06 11:32:34
其他答案在這裏沒有幫助。我發現2個可能會解決這個問題的其他問題:
的項目 - >信息 - >在Xcode項目配置(項目)應設置爲調試,發佈「豆莢」(和whatelse你有) 。請參閱"Headers not found – search paths not included"
也許您必須將目標鏈接到link_with命令。見"Unable to find headers in Static Library project"
編輯 您可以檢查一個符號鏈接是這樣的:創建一個文本文件名爲「檢查」沒有擴展名。複製這些行到它:
file=/Users/youUserName/XcodeProjectName/Pods/BuildHeaders/SVProgressHUD/SVProgressHUD.h
if [[ ! -e $file && -L $file ]]; then
echo "$file symlink is broken!"
else
echo "symlink works"
fi
然後到終端,更改爲您檢查文件所在的文件夾,然後鍵入
bash check
下面是我工作:
轉到Target>「Build Settings」標籤並找到「用戶標題搜索路徑」設置。
將此設置爲「$(BUILT_PRODUCTS_DIR)」並選中「遞歸」複選框。
現在,構建的目標將搜索工作空間的共享構建目錄以查找可鏈接的頭文件。
====
UPDATE
我最近也有類似的(雖然略有不同)的問題。事實證明Xcode無法找到Pod,因爲我打開了.xcodeproj
文件而不是.xcworkspace
文件。未來可能會幫助別人。
這對我有用,但只有退出Xcode,運行'pod install'並重新打開後。 – 2015-11-02 21:53:13
@Snowcrash什麼目標? Pod目標或主要項目目標? – VAAA 2017-04-26 19:44:57
頭文件,你會死我了......
終於得到它通過增加(包括引號)
"${PODS_ROOT}/BuildHeaders"
到用戶頭搜索路徑條目,並檢查工作「遞歸」。
請注意,引號在這裏非常重要。沒有他們,我無法實現它的工作。 – DiscDev 2013-09-29 00:30:55
+1我已經有'$(繼承)'(沒有工作),但加入這對我工作。 – iwasrobbed 2013-12-05 17:13:34
沒有得到你想說的話。 :/請你詳細說明一下嗎? – 2014-06-25 20:20:42
您是否嘗試導入Cocoapods風格?
#import <ASLogger.h>
網站上的信息是不是真的不清楚,我提交了一個拉請求:
https://github.com/CocoaPods/cocoapods.org/pull/34
更新:他們把我的要求:)
使用雙引號風格, #進口「ASLogger.h」 我想這一點, #進口
我之前已經試過這一點,它一直對我來說,但有時會出現不同的問題,當它不起作用。至少在某些情況下,您還可以使用
是的,這也適用於我!沒有任何清理和刪除派生數據的解決它,但這工作。 – PostCodeism 2015-11-20 23:31:10
我發現${PODS_HEADERS_SEARCH_PATHS}
是缺少,它沒有在我的開發git分支中定義,所以我添加了"$(SRCROOT)/Pods/Headers/"
用於遞歸的標題搜索路徑
這是確定的,我
這是我的答案,我更新了cocoapods,我認爲這使得PODS_HEADERS_SEARCH_PATHS消失。我的解決方案與此類似,但是我使用了「$(PODS_ROOT)/ Headers」 – 2013-07-25 05:23:24
其他答案對我來說不起作用,但是這樣做了。我會注意到我沒有包含「,所以我的標題搜索路徑看起來像這個'''$(SRCROOT)/ Pods/Headers''' – Blakedallen 2015-05-20 03:41:35
@Hlung hi,我需要在那裏添加$(SRCROOT)/Pods/Headers /?Appreciate – VAAA 2017-04-26 15:42:16
更新
確保您Podfile
包括上缺少一個配置文件的目標link_with
。 Cocoapods only sets the first target by default否則。例如
platform :osx, '10.7'
pod 'JSONKit', '~> 1.4'
link_with 'Pomo', 'Pomo Dev', 'Pomo Tests'
------最終更新
注:請做筆記,你必須尋找到工程 - >信息 - >配置爲下面的步驟。
我有類似的症狀,發現沒有被包括在特定target
的pods.xcconfig
文件我試圖建立。其他一些建議的解決方案爲我工作,但這似乎解決了一部分潛在問題。
簡單的解決辦法是改變設置的配置文件是沒有一個確定的目標。
我是5.0的Xcode的轉基因種子,我不能得到任何回答這些問題的工作。我在關於標題導入w/cocoapods的多個不同問題上嘗試了每個單獨的答案。
最後,我找到了一個適用於我的解決方案:我通過Mac AppStore(安裝在GM種子上)升級到Xcode 5.0,現在頭導入按預期工作。
我的系統上還有一個測試版的Xcode 5,我也刪除了它。也許這是兩件事的結合,但希望這可以幫助別人。
這是我的答案,我更新了cocoapods,我認爲這使得PODS_HEADERS_SEARCH_PATHS消失。我的解決方案與此類似,但我使用「$(PODS_ROOT)/ Headers」 - Andrew Aitken
非常感謝您的回答。我很難找到解決問題的方法。非常感謝你。
對我來說問題在於其他鏈接器標誌值。出於某種原因,我沒有像-l"xml2"
-l"Pods-MBProgressHUD"
這樣的標記中的引號。
我遇到了Localytics的Cocoapod問題,在其他鏈接器標誌下,我找到了兩個條目:' - | Localytics'和'| --PodsLocalytics '我刪除了那些,然後能夠編譯 – Chris 2016-01-26 18:22:37
我不得不從下載中心混帳的拉鍊和在波德/對應的路徑拖動丟失的文件到Finder中......
無答案的幫助我(我有我的豆莢所有指標掛鉤,正確構建配置設置,設置搜索路徑「$(繼承)」等)。
問題本身消失我更新的CocoaPods到最新,使用調試版本標準安裝/更新命令之後:
gem install cocoapods --pre
或:
sudo gem install cocoapods --pre
(如果安裝過程中使用須藤)。
它一定是cocoapods錯誤。
如果你有一個後建設的錯誤「吊艙安裝」或「莢更新」,它可能是當你還在用以前的你豆莢一個已建成的XCode 6.3版。
在我來說,我不得不從小牛到優勝美地更新我的OSX擁有的Xcode 6.3和解決問題
1.檢查
build settings -> Search Path -> User Header Search Paths ->
2。如果檢查進口的風格(KEY POINT), 您的podfile
已設置
use_frameworks!
在你File-Bridging-Header.h
,格式化應該喜歡這個
#import "MBProgressHUD.h"
其他應低於
#import <MBProgressHUD.h>
3.那一定是工作!相信我
大多數錯誤消失。但是,如果依賴項具有如下導入語句,我該怎麼辦?#import
我會更新我的生成設置下面的東西,我沒有得到任何錯誤。檢查這些是更新你的cocoapods時的事情。
構建設置
Enable Bit code - YES(if you are using bitcode)
Macro preprocessor - $(inherited)
Other linker flag - objc, -lc++, $(inherited)
構建結構僅
Debug - Yes
Relese - No
搜索路徑
Framework search path - $(inherited) $(PROJECT_DIR)
Library search path - $(inherited)
Header search path - $(inherited)
如果沒有日。上面的工作爲你,你正在發現這個錯誤,因爲你剛剛在你的Podfile切換到use_frameworks!
,閱讀:
我試過以上所有的解決方案和更多,才知道它不是關於搜索標題路徑所有在我的具體情況;這就是當你在你的Podfile中切換到use_frameworks!
時,你不再需要在你的橋接頭中包含框架,事實上Xcode會拋出無用的「找不到頭」錯誤。
你需要做的是從你的橋接頭文件中刪除所有的輸入,並且根據需要在你的Swift文件中使用Swift import Module
,就像Swift框架一樣。
如果您在Obj-C類中使用任何框架標題(在我的情況下,我們有一個使用FBSDK的便利類),您需要將其從本地導入到全局導入(這意味着更改#import "Module.h"
到#import <Module/Module.h>
,當你開始輸入框架名稱時它應該自動完成,在我的情況下它是<AFNetworking/AFHTTPRequestOperationManager.h>
)。
編輯:我已經知道,做一個@import Module
使用更安全的傘文件。
選擇Pods項目,找到並選擇Pod項目的目標目錄中缺少標題的目標框架,並在目標構建的「Architectures」下將「僅生成活動架構」設置爲「否」設置。
我是團隊中遇到同樣問題的唯一開發者,它對每個人都非常合適,所以我意識到它必須是我的環境。我在另一個目錄中嘗試了相同項目的git clone
,並且它編譯得很完美,然後我意識到它必須是Xcode緩存的項目路徑的某處,「某處」是DerivedData文件夾,只需將其刪除並執行乾淨的構建你的項目,它爲我工作。
你可以得到的路徑,甚至在取景器通過去打開文件夾:
的Xcode - >首 - >位置 - > ** DerivedData
在我的情況下,更新豆莢後出現問題,所以我認爲在cocoapods應該搜索問題。我已經嘗試過所有解決方案,但沒有運氣,最後只是清除了DerivedData - 它幫助了!謝謝 – Varrry 2016-10-31 16:40:32
有一個嘗試註釋此行的目標
# use_frameworks!
或者,你可以參考我的另一個答案added unit testing target to xcode - failed to import bridging header won't go away
我有同樣的問題,但上述解決方案無法正常工作。 我已經這樣定吧:
然後它工作。
我通過我想使用的拖放框架解決了Xcode 8.2.1的這個問題。
一個簡單的解決方法是: 1.刪除Pods文件夾和Podfile.lock文件。但是,不要在你的項目的根文件夾中刪除Podfile 2.運行以下命令:
pod install
這裏的另一個原因是:所有的頭路徑看起來很好,但我們仍然在預編譯(.PCH)文件有錯誤試圖讀取吊艙標題
(即#import <CocoaLumberjack/CocoaLumberjack.h>)。我終於注意到這個錯誤打破了我們的Watch OS擴展目標,而不是我們正在構建的主要目標,因爲我們還將.pch預編譯頭文件導入到Watch OS目標中,它在那裏失敗。確保您的伴隨Watch OS目標設置不會嘗試導入.pch文件(特別是如果您從主目標設置中設置導入,就像我一樣!)
而不是使用雙引號樣式,#import「ASLogger .h「我試過這個,#import它對我有用:) –
Baig
2013-06-05 11:05:39
供參考:Baigs簡單的答案解決了我的問題,沒有找到標題。 – Pedroinpeace 2014-02-11 15:43:11