SwiftPods

Native Swift. Familiar workflow.

Your dependencies.
In good order.

Describe your Apple project in a Podfile. SwiftPods resolves dependencies, keeps versions locked, and connects everything to Xcode.

macOS / iOS / tvOS / watchOS / visionOS / Mac Catalyst

PodfileMyApp / dependencies
# Start with the project you have.
platform :ios, '15.0'

target 'MyApp' do
  use_frameworks! :linkage => :static
  pod 'Networking',
      :path => './Modules/Networking'
end
$ swiftpods install
SWIFT RESOLVER & XCODE INTEGRATIONLOCKED VERSIONSYOUR PODFILE & HOOKS

From declaration to build

A small workflow.
A project ready to build.

01 / DESCRIBE

Keep dependencies together.

Use version requirements, Git sources, or local paths. Share declarations between targets and choose libraries or frameworks.

02 / INSTALL

Make versions repeatable.

Run swiftpods install and commit your lockfile. Update one dependency when you choose to.

03 / BUILD

Stay in Xcode.

Open the generated workspace. Sources, headers, resources, and framework integration become part of your build.

Team & CI

The same dependency versions, wherever you build.

Deployment mode enforces the lockfile. Offline mode uses dependencies already present in your cache.

See project commands →
swiftpods install --deployment
swiftpods install --offline

# Update a dependency intentionally.
swiftpods update Networking

# Inspect why it is in the project.
swiftpods why Networking --json

Extend the installation

Keep the hooks your project needs.

Use Ruby helpers and supported installation hooks with a separately installed Ruby. The dependency engine runs in Swift.

Work with hooks →
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |configuration|
      configuration.build_settings['MY_BUILD_FLAG'] = 'YES'
    end
  end
end

Start with your project.

Install SwiftPods, add a Podfile, and build.

Read the guide ↗