Whilst checking out the aforementioned
IMcD23/TabView and a few other iOS/macOS libraries I could not help by notice the lack of CocoaPods and the presense of Carthage. Apparently the community is now leaning more towards the latter.
Carthage is intended to be the simplest way to add frameworks to your Cocoa application.
Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup. Carthage does not automatically modify your project files or your build settings.
Dependencies are defined in a
# Require version 2.3.1 or later github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1 # Require version 1.x github "Mantle/Mantle" ~> 1.0 # (1.0 or later, but less than 2.0) # Require exactly version 0.4.1 github "jspahrsummers/libextobjc" == 0.4.1 # Use the latest version github "jspahrsummers/xcconfigs" # Use the branch github "jspahrsummers/xcconfigs" "branch" # Use a project from GitHub Enterprise github "https://enterprise.local/ghe/desktop/git-error-translations" # Use a project from any arbitrary server, on the "development" branch git "https://enterprise.local/desktop/git-error-translations2.git" "development" # Use a local project git "file:///directory/to/project" "branch" # A binary only framework binary "https://my.domain.com/release/MyFramework.json" ~> 2.3
carthage the lockfile
Cartfile.resolved (which you should commit into your version control system!) will be created. Dev dependencies can be stored in a
So why is Carthage getting more popular? From their README, these two here caught my attention:
CocoaPods (by default) automatically creates and updates an Xcode workspace for your application and all dependencies. Carthage builds framework binaries using xcodebuild, but leaves the responsibility of integrating them up to the user. CocoaPods’ approach is easier to use, while Carthage’s is flexible and unintrusive.
Carthage has been created as a decentralized dependency manager. There is no central list of projects, which reduces maintenance work and avoids any central point of failure.
Installation possible using Homebrew:
brew install carthage