我有一個單個項目(MyProject)和三個目標(MyProject,MyProjectTests和MyProjectPlugin)的工作區。我有一個Podfile爲它設置了三個依賴關係。前兩個應該與所有三個目標相關聯,但第三個(OCMock)只應與我的測試目標相關聯。這是我的Podfile:CocoaPods添加重複的框架來測試項目
platform :osx, '10.8'
pod 'objective-zip', :podspec => 'Podspecs/objective-zip.podspec'
link_with 'MyProject', 'MyProjectPlugin', 'MyProjectTests'
pod 'Unrar4iOS', :path => '../Unrar4iOS'
link_with 'MyProject', 'MyProjectPlugin', 'MyProjectTests'
target : MyProjectTests do
pod 'OCMock', '~> 2.2.3'
end
我希望發生是libPods.a
到只有包含在它objective-zip
和Unrar4iOS
,併爲libPods-MyProjectTests.a
是超集,與這兩個,和OCMock
。實際上,這是通過查看Pods.xcodeproj中設置的目標來驗證的。所以將這些框架鏈接到我的項目的正確方法是插件項目主要使用libPods.a
,測試項目使用libPods-MyProjectTests.a
。當我用這種方式配置項目時,所有內容都編譯並運行良好。
這是問題所在。每當我pod update
與一個新的依賴關係,libPods.a
鏈接到libPods-MyProjectTests.a
上的MyProjectTests,導致編譯器錯誤(ld
報告重複的符號,如預期)。
這是一個CocoaPods錯誤,還是我需要更新我的Podfile。在本地開發時這是一個令人討厭的問題,但是當我配置一個自動構建時,每次都會配置pod install
(因爲我沒有,也不打算提交Pods目錄),這將是一個主要問題。