Skip to content

build: drop unused lottie-ios and CocoaImageHashing pods - #1060

Open
PastaPastaPasta wants to merge 1 commit into
developfrom
t3code/remove-unused-ios-pods-1
Open

build: drop unused lottie-ios and CocoaImageHashing pods#1060
PastaPastaPasta wants to merge 1 commit into
developfrom
t3code/remove-unused-ios-pods-1

Conversation

@PastaPastaPasta

Copy link
Copy Markdown
Member

Removes two CocoaPods dependencies that no longer have a single call site, plus the orphaned asset and stale docs that went with them.

What's dead, and why

lottie-ios (4.5.2) — the last usage disappeared in b89826c "retire the legacy mixing UI", which deleted the only import Lottie and the two LottieView(animation: .named("mixing_anim")) call sites. Nothing re-added it.

CocoaImageHashing (git pin ad01eee) — dates to the DashSync era. Its perceptual-hash job now lives in the Rust SDK; see the note in DWProfileUpdateCoordinator.swift that the SDK computes SHA-256 + dHash. No OSImageHashing / OSHashType symbol survives anywhere in the tree.

Verified zero usages across Swift, Objective-C, xib/storyboard and every target (dashwallet, dashpay, TodayExtension, unit tests, UI tests).

Also removed

DashWallet/Resources/mixing_anim.json (~51 KB) — the Lottie animation the retired mixing UI played. It was still being compiled into both app targets with nothing left that could read it.

Eight -l"CocoaImageHashing" entries in project.pbxproj. This is the part worth a reviewer's attention: the project hardcodes CocoaPods' generated linker list into all 8 OTHER_LDFLAGS blocks (every configuration of both app targets). Dropping the pod without removing these gives ld: library not found for -lCocoaImageHashing. Note those blocks already begin with $(inherited), which supplies the very same flags from Pods-*.xcconfig — so the hardcoded list is redundant. Unpicking that is deliberately left out of this PR (see follow-ups).

.claude/agents/EXTERNAL-INTEGRATIONS.md — documented both libraries as in-use and carried a Lottie code example, which would have misled future work.

The project.pbxproj diff is a pure 18-line deletion. pod install also wanted to churn ~168 lines of unrelated UUIDs; that churn was discarded to keep the diff reviewable.

Verification

Clean dashpay build, and a successful link (Ld … dashpay.app/dashpay) — the link is the step that actually exercises the OTHER_LDFLAGS change:

xcodebuild -workspace DashWallet.xcworkspace -scheme dashpay -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' ARCHS=arm64 build
** BUILD SUCCEEDED **

One caveat, stated plainly: that build was run at commit 7ed7d78c7, not at the develop tip. The current tip does not compile against the SwiftDashSDK available locally — EvonodeStatusViewModel.swift and ShieldedTransferCoordinator.swift fail on missing SDK symbols (getEvonodeStatus, shieldedShieldToRecipient, platformDAPIAddress). That breakage is pre-existing and unrelated to this change: those symbols are absent from the local ../platform checkout entirely, the files are untouched here, and the failure reproduces without this change. It needs a rebuilt DashSDKFFI.xcframework, not a fix in this PR.

Also note this repo runs no build in CI on pull requests (only a PR-title lint), so the build evidence above is the gate.

Podfile.lock was regenerated with CocoaPods 1.15.2 — matching the pod _1.15.2_ install --deployment the release workflow runs, so the deployment sync check will pass.

Suggested follow-ups (not in this PR)

  1. Firebase/DynamicLinks is also dead. No FIRDynamicLink symbol exists, and AppDelegate.m already documents that the service was shut down in 2025 and invitations now route directly through DWInvitationLinkNormalizer. Removing it needs two one-line import changes first, because dropping it also drops Firebase/CoreOnly, which is what provides the Firebase umbrella module: @import Firebase@import FirebaseCore in AppDelegate.m, and import Firebaseimport FirebaseStorage in ExploreDatabaseSyncManager.swift. (FirebaseStorage itself is genuinely used and stays.)
  2. Delete the hardcoded pod lists from OTHER_LDFLAGS entirely, leaving $(inherited) and -ObjC. That stale duplicated state is the root reason removing any pod is multi-file surgery rather than a one-line Podfile edit.

🤖 Generated with Claude Code

Neither library has had a call site since the code that used them was removed. lottie-ios lost its last usage in b89826c (retire the legacy mixing UI), which deleted the only import Lottie / LottieView; CocoaImageHashing dates to the DashSync era and its perceptual-hash job now lives in the Rust SDK (see DWProfileUpdateCoordinator: the SDK computes SHA-256 + dHash).

Also removes DashWallet/Resources/mixing_anim.json, the Lottie animation the retired mixing UI played. It was still compiled into both app targets with nothing able to read it.

project.pbxproj hardcodes CocoaPods' generated linker list into all 8 OTHER_LDFLAGS blocks, so the eight -l"CocoaImageHashing" entries had to go too or the link would fail on a library that no longer exists. Those blocks already start with $(inherited), which supplies the same flags from Pods-*.xcconfig; unpicking that redundancy is left to a follow-up.

Updates .claude/agents/EXTERNAL-INTEGRATIONS.md, which documented both libraries as in use and carried a Lottie code example.
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 39 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 08f46902-bb96-454f-834d-c183c89b81bb

📥 Commits

Reviewing files that changed from the base of the PR and between 0ea0eb1 and 37b4e0d.

⛔ Files ignored due to path filters (1)
  • Podfile.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • .claude/agents/EXTERNAL-INTEGRATIONS.md
  • DashWallet.xcodeproj/project.pbxproj
  • DashWallet/Resources/mixing_anim.json
  • Podfile

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant