2013-07-19 123 views
8

我有一個Podfile項目文件看起來像這樣:的CocoaPods產生無效的項目文件(頭未找到)

platform :ios, '7.0' 

def import_pods 
pod 'Specta', '0.1.8' 
pod 'Expecta', '0.2.1' 
pod 'RestKit', '0.20.3' 
pod 'MagicalRecord', '2.1' 
pod 'RestKit/Testing', '0.20.3' 
end 

link_with 'LocalMedTests' 
import_pods 

當我運行莢安裝,它產生的Podfile.lock,莢目錄,我的項目工作區。當我打開工作空間來構建它時,我得到如下錯誤:找不到'RestKit.h'文件。

它似乎只是一個RestKit的問題,但我無法通過這些錯誤,看看是否有更多。 restkit頭文件在Pods/Headers中。它們已正確包含在Pods.xcconfig中。這裏是很好的措施:

FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SDKROOT)/Developer/Library/Frameworks" "$(DEVELOPER_LIBRARY_DIR)/Frameworks" 

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 

HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/Expecta" "${PODS_ROOT}/Headers/MagicalRecord" "${PODS_ROOT}/Headers/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit/CoreData" "${PODS_ROOT}/Headers/RestKit/RestKit/Network" "${PODS_ROOT}/Headers/RestKit/RestKit/ObjectMapping" "${PODS_ROOT}/Headers/RestKit/RestKit/Support" "${PODS_ROOT}/Headers/RestKit/RestKit/Testing" "${PODS_ROOT}/Headers/SOCKit" "${PODS_ROOT}/Headers/Specta" "${PODS_ROOT}/Headers/TransitionKit" 

OTHER_LDFLAGS = -ObjC -framework CFNetwork -framework CoreData -framework Foundation -framework MobileCoreServices -framework Security -framework SenTestingKit -framework SystemConfiguration 

PODS_ROOT = ${SRCROOT}/Pods 

我試過清洗和清洗生成文件夾。這並不重要 - 我總是得到頭未找到錯誤。

我還應該補充說明,所有由Pods.xcconfig指定的頭文件目錄都應該包含在目標文件中。

對此有何想法?我一直在這個項目中使用CocoaPods幾個月沒有問題,最近做了些什麼改變?

+0

你是如何在你的'#import's進口頭? –

+0

'#import '但我已經嘗試了幾個變化,沒有運氣。在我刪除/豆莢之前它一直工作正常,並且讓CocoaPods再次生成它們(和工作區)。 –

+1

我有一個類似的問題,我們的cocoapod安裝程序(私人cocoapod回購)。突然之間,頭文件並沒有被鏈接進去。我一直在關注幾條線索,確保Pods.xcconfig看起來不錯,但我無法正常工作。 – atroutt

回答

10

這解決了我的問題

HEADER_SEARCH_PATHS在你的項目構建設置添加$(inherited)

而且這樣做對所有TAGETS

變化Arcgitectures到標準ARMv7的 enter image description here

https://stackoverflow.com/a/12142790/1294448

+0

注意:使架構amrv7將不再工作,由於蘋果限制,使所有的應用程序像64位一樣工作,但不要忘記將同一架構即(標準架構)製作到Pods以及項目。還將Build Active Architecture Only設置爲NO。 –

+0

我在'HEADER_SEARCH_PATHS'中有'$(inherited)'。 Cmd + K修復了我的問題。感謝您發佈此問題。 – Adrian

2

對我來說,問題出在Other Linker FlagsRunpath Search Paths,它們沒有繼承xcconfig上定義的設置。以下調整解決我的問題:

其它鏈接器標記

$(inherited) 

RUNPATH搜索路徑

$(inherited) 
@executable_path/Frameworks