2015-12-09 58 views
4

我最近開始使用CocoaPods來管理我現有的ios項目中的依賴項。我在運行OS X 10.11.1(El Capitan)的Mac上使用Xcode 7.1.1。CocoaPods沒有鏈接庫

問題是,我似乎仍然必須顯式鏈接構建階段的鏈接二進制與庫部分的框架,或者我得到的錯誤消息是「_OBJC_CLASS _ $ _ Crashlytics」,引用來自:ld:在架構x86_64中找不到符號...我在CocoaPods管理的依賴關係中定義的類中獲得了許多這些錯誤。如果我明確地將相關的框架添加到我的目標的鏈接二進制與庫部分的Pods項目中,一切正常,但根據我的理解,這不應該是必需的。

這裏的podfile:

# Uncomment this line to define a global platform for your project 
platform :ios, '7.0' 
# Uncomment this line if you're using Swift 
# use_frameworks! 

workspace 'myproject' 

def shared_pods 
    pod 'ParseUI' 
    pod 'ParseCrashReporting' 
    pod 'Fabric' 
    pod 'Crashlytics' 
end 

target 'myproject' do 
    shared_pods 
end 

target 'myprojectTests' do 
    shared_pods 
    pod 'OHHTTPStubs' 
end 

我猜這事做與我加POD MGMT到現有項目的事實。我試過不同的Podfile配置,我試過刪除並重新安裝,到目前爲止沒有任何工作......防止錯誤的唯一可靠解決方案是顯式鏈接Pods目錄中的相關框架。

任何幫助非常感謝

+0

只需輸入端子 '莢--version',看看是否波德確實存在?有了最新的更新,我們必須重新安裝pod –

+0

0.39.0 ... pod項目中的所有框架都存在,libPods-myproject.a被列在Link Binary with Libraries部分等中,等等... Pod存在...這是Pod目錄中的框架,我明確地鏈接到使其全部工作......但是,爲什麼? –

+0

1)您在切換到Cocoapods之前是否使用了Crashlytics?如果是這樣,也許你沒有正確地轉換項目。 2)刪除您的pod文件中的所有內容,只留下您使用的pod'ParseUI',pod'ParseCrashReporting',pod'Fabric',pod'Crashlytics'的文本,然後從命令行運行「pod install」。第二個建議是隻消除你在podfile中的額外配置信息,看看是否是這個問題。在運行「pod安裝」之前,您可能還需要手動刪除.xcworkspace和Pods目錄,因爲無論如何這些目錄都將被重建。 – xdeleon

回答

0

我也有類似的問題,即在那裏編譯好的,但鏈接時在那裏找不到庫。

在我Podfile(cocoapod版本1.2.1):

abstract_target 'Global' do 
    pod 'pod-name', '~> 1.0,0', :configurations => ['Alpha', 'Release'] 
    pod 'pod-nme2', :configurations => ['Release'] 

    target 'MyTarget' do 
    end 
    end 

的問題是,當我檢查目標是使用編譯代碼的架構,在運行中使用的配置等是「如配置下的Podfile所述,不要調試'Alpha'。

當連接應用程序時,它會失敗並丟失所有包含pod的庫!

「爲架構x86_64的未定義符號:」