RORK LABJP
PLAY — Google Play's target API level 36 requirement took effect yesterday, August 31. From today, new apps and updates must target Android 16VISIBILITY — Apps still on API 35 stay listed but disappear for users on newer Android versions. No error is raised; new installs simply fade, which makes the change easy to missEXTENSION — If you missed the deadline, an extension through November 1, 2026 can be requested in Play Console — best filed alongside a concrete migration planAPPLE — On the Apple side, the event lands September 9 and iOS 27 is reported to ship September 14. Testing generated apps on iOS 27 hardware before release week is time well spentEXPO — Expo released expo-paste-input on August 28, a native module that brings image, GIF, and sticker paste to React Native TextInputEAS — EAS Observe reached general availability on August 20, putting crash and performance monitoring on the same EAS platform as builds and updatesPLAY — Google Play's target API level 36 requirement took effect yesterday, August 31. From today, new apps and updates must target Android 16VISIBILITY — Apps still on API 35 stay listed but disappear for users on newer Android versions. No error is raised; new installs simply fade, which makes the change easy to missEXTENSION — If you missed the deadline, an extension through November 1, 2026 can be requested in Play Console — best filed alongside a concrete migration planAPPLE — On the Apple side, the event lands September 9 and iOS 27 is reported to ship September 14. Testing generated apps on iOS 27 hardware before release week is time well spentEXPO — Expo released expo-paste-input on August 28, a native module that brings image, GIF, and sticker paste to React Native TextInputEAS — EAS Observe reached general availability on August 20, putting crash and performance monitoring on the same EAS platform as builds and updates
Articles/Dev Tools
Dev Tools/2026-05-16Advanced

Migrating Firebase CocoaPods to SPM in Rork Max Apps

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 Manager2CocoaPods3iOS110Rork Max232Crashlytics12dSYM3migration202620

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 maintain 4 iOS apps — Beautiful HD Wallpapers, Ukiyo-e Wallpapers, Relaxing Healing, and Law of Attraction Everyday. Every one of them ships Firebase Crashlytics and Analytics, which means every one of them is in scope for 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. I've watched a dependency fall behind before: crashes start appearing on new iOS versions, review slows down while Apple flags outdated dependencies, and recovery ends up far 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 the pre-migration script and version-pinning workflow that cut each migration from 4 hours to about 30 minutes
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 $15 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 →