RORK LABJP
TOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the roundTOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the round
Articles/Dev Tools
Dev Tools/2026-05-16Advanced

Migrating Firebase CocoaPods to Swift Package Manager in Rork Max iOS Apps — Real Migration Log and 3 Pitfalls to Avoid Before October 2026

Firebase Apple SDK's CocoaPods distribution ends in October 2026. Here's a detailed migration log from moving 4 Rork Max iOS apps to Swift Package Manager — including dSYM failures, module errors, and the Dropbox conflict copy problem you'll definitely hit.

Firebase10Swift Package Manager2CocoaPods3iOS109Rork Max229Crashlytics12dSYM3migration202620

Premium Article

Earlier this year, the Firebase team published an announcement that caught my attention: CocoaPods-based distribution for the Firebase Apple SDK would be discontinued in October 2026.

I run 4 iOS apps — Beautiful HD Wallpapers, Ukiyo-e Wallpapers, Relaxing Healing, and Law of Attraction Everyday. I've been building and maintaining iOS apps independently since 2013, and all four apps have accumulated more than 50 million downloads combined. Every one of them uses Firebase Crashlytics and Analytics, which means every one of them is affected by this change.

My first reaction was "October is months away." But once I actually started the migration, I kept hitting problems I hadn't anticipated — a Dropbox sync conflict that corrupted SPM's index, a dSYM upload script pointing at a path that no longer existed, and an issue specific to Rork Max where project regeneration silently restored the Podfile I had just deleted.

I started with Relaxing Healing as a pilot, and documenting what broke made the remaining three apps dramatically faster. This article is the full log.

Why This Can't Wait Until October

CocoaPods was the dominant iOS package manager for most of the 2010s. Apple integrating Swift Package Manager into Xcode natively changed the trajectory, and Firebase's October 2026 deadline is the clearest possible signal about where things are heading.

The practical consequence: if you stay on CocoaPods past October, you'll be frozen on whatever Firebase SDK version exists at that point. No security patches. No bug fixes. No support for new iOS versions or App Store requirements. Over time, apps built on a frozen SDK fail review, behave incorrectly on current hardware, or stop working altogether.

For an independent developer running real apps with real users, this is concrete risk — not hypothetical. Having maintained iOS apps since 2013, I've seen what happens when a dependency falls behind: crashes appear on new iOS versions, App Store reviews slow down while Apple flags outdated dependencies, and eventually recovery becomes much more disruptive than a planned migration would have been.

Beyond Firebase's specific deadline, CocoaPods maintenance itself has slowed considerably. Major contributors have moved on to SPM, Tuist, and other modern tooling. With each Xcode release, CocoaPods compatibility issues become slightly more common and resolution slightly slower. Starting the migration now, on your own schedule, is vastly preferable to doing it under pressure.

My Setup — 4 Apps, All Using Firebase via CocoaPods

Here's the Firebase dependency for each app before migration:

  • Beautiful HD Wallpapers (since 2013): Firebase/Core, Firebase/Crashlytics, Firebase/Analytics, Firebase/RemoteConfig
  • Ukiyo-e Wallpapers (since 2014): Firebase/Core, Firebase/Crashlytics, Firebase/Analytics
  • Relaxing Healing (since 2013): Firebase/Core, Firebase/Crashlytics, Firebase/Analytics, Firebase/Performance
  • Law of Attraction Everyday (since 2014): Firebase/Core, Firebase/Crashlytics, Firebase/Analytics, Firebase/RemoteConfig

All four projects use Rork Max for development and maintenance work, but Firebase configuration is handled directly in Xcode. There's a specific Rork Max concern to be aware of around project regeneration, which I'll cover later.

I chose Relaxing Healing as the first migration because it uses the most Firebase modules — four, including Performance Monitoring, which has less migration documentation than the others. Starting with the most complex case meant I'd encounter the broadest set of issues in a single run.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Get a step-by-step SPM migration path you can start today, based on migrating 4 production apps with 50M+ total downloads
Prevent the 3 most common post-migration failures: dSYM upload errors, module not found in editor, and Dropbox conflict copies
Learn the Rork Max–specific pitfall where project regeneration can silently restore your deleted Podfile
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Dev Tools2026-05-16
Rork Max SwiftUI App Crash Logs Are Unreadable: The dSYM Upload Pitfall
Fix Unsymbolicated crash reports in Firebase Crashlytics for Rork Max SwiftUI apps. Learn the correct dSYM upload configuration with real examples from indie app development.
Dev Tools2026-06-18
Turning Rork App Crash Reports You Can Actually Read — Field Notes on dSYM Recovery, Context Logs, and Staged Distribution
You added Crashlytics, but the stack traces are unreadable. Field notes on restoring dSYM/mapping symbols, logging the context that led to a crash, and gating distribution with App Distribution and GitHub Actions.
Dev Tools2026-07-13
Losing HealthKit Data on Incremental Sync — Designing HKQueryAnchor Persistence
When step or sleep data double-counts or goes missing on incremental HealthKit sync, the root cause is usually HKQueryAnchor persistence. Here is a working Swift design that handles newAnchor and deletedObjects correctly and stays consistent across reinstalls and background updates.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →