DEV Community

Surhid Amatya
Surhid Amatya

Posted on

1

CocoaPods is Going Read-Only! What iOS Developers Need to Know

CocoaPods is officially sunsetting, with the trunk becoming read-only on December 2, 2026.

What Does This Mean:

  1. No new pods can be added.
  2. No updates to existing pods on the trunk.
  3. Existing projects using CocoaPods will still work as long as GitHub and jsDelivr continue to operate.

đź“… Key Timeline:
📢 Jan 2025 – First notification to CocoaPods contributors.
📢 Sept-Oct 2026 – Second notification before the final switch.
📢 Nov 1-7, 2026 – Test run of the read-only mode.
📢 Dec 2, 2026 – Trunk becomes permanently read-only.

Why You Should Migrate to Swift Package Manager (SPM)
The Swift Package Manager (SwiftPM) is the official tool for managing Swift dependencies. Integrated with the Swift build system, it automates downloading, compiling, and linking dependencies, making dependency management seamless.

Key Features of SwiftPM:

  1. Built into Xcode – No extra tools needed!
  2. Efficient & Fast – No more dependency conflicts!
  3. Direct Git Integration – No need for podspecs!
  4. Future-Proof – Officially supported by Apple!

How SwiftPM Works
Swift organizes code into modules, enforcing access control and enabling easy reuse. A package in SwiftPM consists of:

  1. Package.swift – The manifest file defining dependencies and targets.
  2. Targets – Define modules (either libraries or executables).
  3. Dependencies – Other modules/packages required by the project.

Example Package.swift file for a dependency:

// swift-tools-version:5.3
import PackageDescription

let package = Package(
    name: "DeckOfPlayingCards",
    products: [
        .library(name: "DeckOfPlayingCards", targets: ["DeckOfPlayingCards"]),
    ],
    dependencies: [
        .package(url: "https://github.com/apple/example-package-playingcard.git", from: "3.0.0"),
    ],
    targets: [
        .target(
            name: "DeckOfPlayingCards",
            dependencies: ["PlayingCard"]),
    ]
)
Enter fullscreen mode Exit fullscreen mode

With SwiftPM, transitive dependencies are automatically resolved—meaning if you include a package, its dependencies are handled automatically.

What Should You Do Next?

  1. If you’re still using CocoaPods, start transitioning to SwiftPM.
  2. Explore Apple’s official SwiftPM documentation to adapt your existing dependencies.
  3. Update your projects and libraries to support SwiftPM moving forward.

Reference

  1. https://www.swift.org/documentation/package-manager/
  2. https://blog.cocoapods.org/CocoaPods-Specs-Repo/

Quadratic AI

Quadratic AI – The Spreadsheet with AI, Code, and Connections

  • AI-Powered Insights: Ask questions in plain English and get instant visualizations
  • Multi-Language Support: Seamlessly switch between Python, SQL, and JavaScript in one workspace
  • Zero Setup Required: Connect to databases or drag-and-drop files straight from your browser
  • Live Collaboration: Work together in real-time, no matter where your team is located
  • Beyond Formulas: Tackle complex analysis that traditional spreadsheets can't handle

Get started for free.

Watch The Demo 📊✨

Top comments (0)

AWS Security LIVE!

Hosted by security experts, AWS Security LIVE! showcases AWS Partners tackling real-world security challenges. Join live and get your security questions answered.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️