◉CLAUDE LABJP
●2.1.301 — Adds the vim % motion, LaTeX math rendering in the VS Code panel, and a retry-watchdog limit for usage-limit waits (10/15)●2.1.299 — Conversations over 200K tokens left idle about 54 minutes get compacted; MCP allow rules now match only the server they name●SONNET 4.5 — Retires on the Claude API on 11/30, 45 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST MODE — Opus 5.5 fast mode is out of research preview and no longer needs the beta header (10/15)●NEW — I Put a Ten-Line Promise File at the To…●2.1.301 — Adds the vim % motion, LaTeX math rendering in the VS Code panel, and a retry-watchdog limit for usage-limit waits (10/15)●2.1.299 — Conversations over 200K tokens left idle about 54 minutes get compacted; MCP allow rules now match only the server they name●SONNET 4.5 — Retires on the Claude API on 11/30, 45 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST MODE — Opus 5.5 fast mode is out of research preview and no longer needs the beta header (10/15)●NEW — I Put a Ten-Line Promise File at the To…
Articles/Claude.ai
◉ Claude.ai/2026-05-27Advanced

Semi-Automating Firebase SDK Upgrades with Claude on Xcode — Implementation Notes from Six Indie iOS Apps

How I used Claude on Xcode integrated into Xcode 16.4 to walk six iOS apps through Firebase SDK 12 to 13 upgrades and finish the CocoaPods to Swift Package Manager migration — with the actual prompts, regression tests, and the judgment calls along the way.

claude-on-xcodefirebaseios14swift-package-managerindie-development3

✦ Premium Article

Open the Project Navigator in Xcode and check Firebase's Swift Packages, and you may find updates lined up from 12.0.0 all the way to 13.2.1. Pressing "Update Package" takes a second. The work that hides behind it — Crashlytics run scripts, SwiftLint configuration, Privacy Manifest entries, the order of ATT prompts — quietly differs across each of six apps. Missing a piece tends to surface as a slow drift of overnight Crashlytics notifications. Twelve years of running iOS apps as a solo developer has taught me how easy it is to repeat that mistake.

In early 2026, I added Claude on Xcode to my main IDE and substantially restructured the way I handle Firebase upgrades. With the combination of Xcode 16.4 and the Claude on Xcode 0.4 line, I worked through six wallpaper, relaxation, and inspiration apps — the lineup I have maintained for years — and walked them all into Firebase iOS SDK 13. These are the notes from that work.

This work sits directly on top of the same indie practice I've kept since 2014, so the Firebase upgrade material in this note is rewritten in the order I actually verified it for the App Store and Google Play releases.

The First 30 Minutes That Changed How Firebase Upgrades Feel

The first project I opened with Claude on Xcode installed was Beautiful HD Wallpapers. I had already documented the CocoaPods to SPM migration for that app separately, with Firebase pinned at 12.4 at the time.

With Xcode open, I docked the Claude panel into the right sidebar and started with the following prompt.

Read the Package Dependencies of this project.
What version is firebase-ios-sdk pinned to right now,
and where in the codebase might we hit breaking changes
when moving to the latest major version?
Pay particular attention to Crashlytics, Analytics,
and anything touching AdMob.

Claude on Xcode can read Package.resolved and the project.pbxproj file as IDE context, so it correctly identified the current firebase-ios-sdk version. In the first reply, it surfaced the likely change surface around setCrashlyticsCollectionEnabled, tighter Analytics event naming lint rules, and the compatibility matrix with Google Mobile Ads SDK 12. The reply was not perfect — I still went to the Firebase release notes manually for verification — but having the order in which to read those notes already settled in 30 minutes was a noticeable improvement over working with Xcode alone.

It's important to remember that Claude on Xcode can see Xcode-internal syntax and build settings, but not external systems like the Firebase Console or App Store Connect. Drawing that role boundary early on saves you confusion later.

Installation and Initial Setup — Xcode 16.4 / Claude on Xcode 0.4 Series

Following the official setup steps verbatim leaves a few gaps when you bring Claude on Xcode into an indie project.

  1. Register an Anthropic API key in Claude on Xcode's settings. For team development, creating a Workspace in the Claude Console and scoping permissions there is the orthodox choice. For a one-person operation like mine, I settled on a dedicated key from my personal workspace and monitor monthly spend on the Console's Usage tab
  2. Allow the Xcode Source Editor extension. Without enabling Claude on Xcode from System Settings → Privacy & Security → Extensions → Xcode Source Editor, you won't get code completion, and Project Navigator context will be unreachable as well
  3. Wait until indexing is done before talking to the assistant. After dropping in a heavy SPM package like firebase-ios-sdk, Xcode's indexing run can take three to five minutes. Sending a query before that completes makes Claude on Xcode reply against a stale code graph, and the confidence of its responses drops dramatically

The third point is a quiet pitfall — the build doesn't fail, so it's easy to miss. I tripped on it three times in the first two weeks. Switching to the simple rule of "wait until XCBBuildService in Activity Monitor settles down before sending a prompt" stabilized things.

Once setup is done, I open a fresh session and send the following prompt to load project context into the assistant.

Summarize the overall structure of this project.

- Target structure (Main / Extension / Widget / Watch)
- Major versions for each Package Dependency
- Build Settings values for SWIFT_VERSION,
  IPHONEOS_DEPLOYMENT_TARGET, and SWIFT_STRICT_CONCURRENCY
- Names and roles of each Run Script Phase

Return this as a markdown list.

The outline is something you'll reference repeatedly, so saving the result to .claude/project-overview.md after Claude on Xcode generates it makes it easy to resume context in later sessions.

✦

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
✦Run Claude on Xcode in the sidebar to do the research on Firebase SDK 12 to 13 changes while you focus on build verification, and reproduce the workflow across six apps with the exact prompts shown here
✦Rebuild the Run Script phase for dSYM uploads, .gitignore entries, and xcconfig consistency that CocoaPods left behind, all regenerated by Claude on Xcode within 30 minutes per app
✦From years of indie iOS maintenance, see the explicit list of workflow steps where Claude on Xcode helps (test runners, dependency graphs) and where I deliberately keep it out (Crashlytics triage, ATT order, App Store review replies)
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

Claude 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

◉ Claude.ai2026-10-15
Let Claude Draft the Quote's Wording, Keep the Numbers in Your Own File — A Small Source of Truth and a Check Script
How a freelancer can have Claude polish the wording of quotes and invoices while the amounts stay in a JSON file and get verified by a short Python script.
◉ Claude.ai2026-10-09
I Kept Rewriting My First Request to Claude Until I Handed It One Page About My Work
If Claude's answers keep missing the mark, the cause may not be your wording. It may be that you never explained your work. Here is how a non-engineer can write a one-page work description today and fold it into the first request.
◉ Claude.ai2026-10-06
Paid for Pro but still on Free? Where you bought it decides which screen to open and where to cancel
You paid for Claude Pro but the account shows Free, there is no invoice, or there is no Cancel button. A side-by-side of web/Desktop purchases versus iOS/Android in-app purchases, so you know which screen to open first for each symptom.