build: drop unused lottie-ios and CocoaImageHashing pods - #1060
Open
PastaPastaPasta wants to merge 1 commit into
Open
build: drop unused lottie-ios and CocoaImageHashing pods#1060PastaPastaPasta wants to merge 1 commit into
PastaPastaPasta wants to merge 1 commit into
Conversation
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.
|
Warning Review limit reachedNext included review available in 39 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 onlyimport Lottieand the twoLottieView(animation: .named("mixing_anim"))call sites. Nothing re-added it.CocoaImageHashing(git pinad01eee) — dates to the DashSync era. Its perceptual-hash job now lives in the Rust SDK; see the note inDWProfileUpdateCoordinator.swiftthat the SDK computes SHA-256 + dHash. NoOSImageHashing/OSHashTypesymbol 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 inproject.pbxproj. This is the part worth a reviewer's attention: the project hardcodes CocoaPods' generated linker list into all 8OTHER_LDFLAGSblocks (every configuration of both app targets). Dropping the pod without removing these givesld: library not found for -lCocoaImageHashing. Note those blocks already begin with$(inherited), which supplies the very same flags fromPods-*.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.pbxprojdiff is a pure 18-line deletion.pod installalso wanted to churn ~168 lines of unrelated UUIDs; that churn was discarded to keep the diff reviewable.Verification
Clean
dashpaybuild, and a successful link (Ld … dashpay.app/dashpay) — the link is the step that actually exercises theOTHER_LDFLAGSchange:One caveat, stated plainly: that build was run at commit
7ed7d78c7, not at thedeveloptip. The current tip does not compile against the SwiftDashSDK available locally —EvonodeStatusViewModel.swiftandShieldedTransferCoordinator.swiftfail on missing SDK symbols (getEvonodeStatus,shieldedShieldToRecipient,platformDAPIAddress). That breakage is pre-existing and unrelated to this change: those symbols are absent from the local../platformcheckout entirely, the files are untouched here, and the failure reproduces without this change. It needs a rebuiltDashSDKFFI.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.lockwas regenerated with CocoaPods 1.15.2 — matching thepod _1.15.2_ install --deploymentthe release workflow runs, so the deployment sync check will pass.Suggested follow-ups (not in this PR)
Firebase/DynamicLinksis also dead. NoFIRDynamicLinksymbol exists, andAppDelegate.malready documents that the service was shut down in 2025 and invitations now route directly throughDWInvitationLinkNormalizer. Removing it needs two one-line import changes first, because dropping it also dropsFirebase/CoreOnly, which is what provides theFirebaseumbrella module:@import Firebase→@import FirebaseCoreinAppDelegate.m, andimport Firebase→import FirebaseStorageinExploreDatabaseSyncManager.swift. (FirebaseStorageitself is genuinely used and stays.)OTHER_LDFLAGSentirely, 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