我無法讓我的工作空間與Cocoapods正確編譯。有3個項目,在工作區中,每一個都有自己的目標:使用現有的靜態庫和iOS應用程序配置Cocoapods
- libPods - 的CocoaPods與所有的外部依賴
- libCommon靜態庫 - 我的靜態庫,我把我所有的共享代碼(基地控制器,網絡設備碼,常見的UI等)
- 對myApp - 我的iPhone應用程序
兩個libCommon和對myApp需要從libPods的外部依賴。本來我以爲會像這樣工作:
- libPods建立針對libPods
- libCommon聯繫,並建立
- 對myApp鏈路與libCommon並建立
在這種情況下libCommon 「擁有」 豆莢,然後myApp只是像libCommon一樣鏈接到libCommon,就像我一直在做Cocoapods之前一樣...但顯然靜態庫不喜歡與靜態庫鏈接(我有一堆動態庫錯誤)。我讀了一個github的問題,而不是我應該建立libPods和libCommon,然後我的應該鏈接兩個庫。現在我podfile看起來是這樣的:
workspace 'MyApp.xcworkspace'
platform :ios, '5.0'
link_with ['Common', 'MyApp']
target 'MyApp' do
xcodeproj 'MyApp.xcodeproj'
pod 'AFNetworking', '1.1.0'
pod 'TTTAttributedLabel', '1.6.0'
pod 'JSONKit', '1.5pre'
pod 'Reachability', '3.1.0'
end
有了這個設置,對myApp擁有所有的豆莢,然後在libCommon構建設置我指定的路徑莢頭。直到我嘗試使用libCommon中的其中一個類時,它纔會生成OK。一旦我這樣做,我得到其中一個_OBJC_CLASS_$_Blah
錯誤(這告訴我,雖然頭可用,它仍然沒有正確鏈接)。當我嘗試在「Build Phases」中手動鏈接libCommon時,我得到一堆重複的符號錯誤(這讓我相信它已經鏈接了)。有沒有搞錯?
正確地做到這一點的方法是什麼,我的podfile應該是什麼樣子?
我不知道你如何快速回答cocoapods,法比奧,但只是一個說明,非常感謝!我之前有類似的問題,而'獨家'選項可以解決它。 – Stew 2013-05-09 23:26:55
我按照你的建議設置了,並且MyApp目標編譯成功,直到我嘗試使用普通類(例如:添加以下行:MyObject * objectFromCommon = [[MyObject alloc] init];結果是_OBJC_CLASS_ $ _MyObject錯誤)。解析器/語法突出顯示雖然很好,但這使我相信這些頭文件可用,但該文件夾尚未鏈接。思考? – user2393462435 2013-05-10 21:26:31
@ user2393462435,您需要手動將「Common」目標與框架構建階段中的「MyApp」目標鏈接起來(CocoaPods無法管理您的目標)。 – Fabio 2013-05-13 12:04:33