CocoaPods
CocoaPods
is a centralised dependency management. It operates by Podfile
to read a dependency and a version. Pod
project will be created in a workspace. CocoaPods
implements Implicitly dependency
[About] approach:
On the client side you have a Podfile
. The core of Podfile
is a pod:
When Podfile
is read (during pod install
or pod update
) by Cocoapods
the graph of implicit and explicit dependencies is created. After that the manager should find each source into a .podspec
which is usually hosted into some host. That is why Cocoapods
is centralised. A framework's developer is responsible for creating this file and supporting it. .podspec
describes a meta-information about the framework, like dependencies, subspecs, etc. The main part of it is source
which tells to Cocoapods
where source is hosted and this sources will be downloaded into a Pod
project. Cocoapods
uses workspace to automate the build process and manage implicit dependencies. Cocoapods
setup all necessary info into your consumer project(like Search pats, etc). When you build the consumer project Xcode pull pods and assemble all together.
.podspec
Specification or spec determines general data like module name, deployment version etc. Specification can contains sub specification or sub specs to have more granular control over source files. Each of spec or subspec can have dependencies. By default spec will include all subspecs if you not specify default_subspec
Module name will be changed when
1. <module_name>.podspec
2. <spec_variable>.name = "<module_name>"
//or
1. <spec_variable>.module_name = '<module_name>'
[Local podspec]
[CocoaPods version]
[iOS Dependency manager]
[CocoaPods source_files]