我有一個迦太基和Cocoapods的項目。它們都有一個共同的依賴關係(準確地說是PureLayout)。奇怪的是,但項目編譯罰款沒有任何有關類重新聲明的錯誤等。 所以問題是:爲什麼它的工作和實際使用哪個版本的依賴項時,我打電話給PureLayout的方法 - 迦太基或Cocoapods'?可可豆和迦太基
可可豆和迦太基
回答
Carthage
和CocoaPods
在構建依賴項和將它們整合到項目中有很大不同。
CocoaPods是集中式的依賴管理器,它將構建您的依賴關係並通過創建新的.xcworkspace
工作空間將它們直接集成到項目中。這意味着您可以在構建之後立即訪問構建依賴關係。
另一方面,迦太基是分散的依賴管理器,它使您將依賴項集成到項目中。 Carthage構建了Cartfile
中指定的框架並將它們移動到Carthage/Builds
文件夾中。構建過程之後,由您來集成和管理依賴關係。
在你的情況下,當你建立你的PureLayout
依存性的CocoaPods和迦太基的CocoaPods它集成項目和迦太基離開你建立在Carthage/Builds
這意味着你只使用的CocoaPods構建PureLayout
版本。
此外,使用多個程序包/依賴項管理器是一種不好的做法。你應該堅持這一點,並對此感到滿意。
的很好的解釋是的,如果我沒有鏈接項目與迦太基構建的框架,將會有毫無疑問,Cocoapods版本的作品。但我做到了。它現在位於鏈接框架和庫部分。這就是我很驚訝的原因。 –
的CocoaPods與迦太基
CocoaPods
(默認)自動創建並更新的Xcode工作空間爲您的應用程序和所有的依賴。
Carthage
使用Xcode構建構建框架二進制文件,但留下了將它們集成到用戶的責任。
CocoaPods
方法更易於使用,而Carthage’s
是靈活且不干擾的。
Carthage
已被創建爲分散依賴管理器。沒有中央項目清單,這減少了維護工作,避免了任何中心點的故障。但是,項目發現更加困難 - 用戶必須訴諸GitHub的Trending頁面或類似頁面。
CocoaPods
項目還必須具有所謂的podspec文件,該文件包含有關項目的元數據並指定應該如何構建它。
Carthage
使用Xcode構建來構建依賴關係,而不是將它們集成到一個工作區中,它沒有類似的規範文件,但您的依賴項必須包含自己的Xcode項目,該項目描述瞭如何構建其產品。
最終,我們創建了Carthage
,因爲我們需要最簡單的工具 - 一個dependency manager
,它可以在不接管Xcode的責任的情況下完成工作,也不需要爲框架作者創建額外的工作。
CocoaPods
提供了許多令人驚訝的功能,Carthage
永遠不會有,在犧牲額外的複雜性。
- 1. UrabanAirship迦太基
- 2. sqlite.swift迦太基
- 3. 迦太基解析錯誤
- 4. 迦太基構建失敗
- 5. PubNub - iOS - 僅限迦太基?
- 6. 「迦太基更新 - 平臺iOS」卡在「獲取可解碼」
- 7. 迦太基錯誤 「壞憑據」
- 8. 迦太基靜態框架dSYMs
- 9. 迦太基不構建主框架
- 10. 如何回滾到Xcode 6.4,迦太基
- 11. 如何清除迦太基緩存?
- 12. 構建失敗的領域和circleCI(與迦太基)
- 13. 所有可可豆庫中的Xcode 7.3.1錯誤太突然
- 14. 可可豆和谷歌地圖SDK
- 15. 谷歌登錄iOS SDK - 迦太基支持
- 16. 適用於iOS的Google跟蹤代碼管理器 - 迦太基
- 17. 。框架文件作爲迦太基(Fabric&Crashlytics示例)
- 18. 試圖合併靜態框架使用迦太基
- 19. 推送給git的迦太基文件列表
- 20. 迦太基需要git 2.3.0或更高版本
- 21. 優步迦太基swift LoginManager(loginType:.AuthorizationCode)給accessToken = nil
- 22. 如何升級使用迦太基安裝的現有框架
- 23. 選擇迦太基依賴的部署目標
- 24. 迦太基更新 - 任務失敗,退出代碼65
- 25. 我需要在我的iOS項目迦太基
- 26. 迦太基:打開導入文件模塊*權限被拒絕
- 27. 可可豆莢的問題
- 28. 可可豆莢刪除
- 29. 可可豆莢GLM錯誤
- 30. 如何讓迦太基建立在源代碼控制之下,以避免需要爲團隊「迦太基更新」?
這裏是關於https://medium.com/ios-os-x-development/cocoapods-vs-carthage-675633e89c3e –