Repository navigation
tech: Remove CocoaPods support - #401
Merged
Merged
Conversation
The pod cannot be kept correct. Its dependencies stopped moving years ago — BigInt 5.2.0 from 2020, secp256k1.swift 0.1.4 from 2018, Logging 1.4.0 from 2020 — and none of them will move again: attaswift no longer ships a BigInt podspec at all. The pod also builds against a different secp256k1 implementation than the package does, which is what #367 ran into. Trunk stops accepting new podspecs in December 2026 regardless. Publishing another version would mean shipping something meaningfully different from, and worse than, the SPM package. Nothing is removed from CocoaPods by this: published versions stay installable, so anyone already depending on 1.6.0 is unaffected. There simply will not be new ones. Deletes the podspec and the Gemfile that existed only to run the pod tooling, and drops the #if !COCOAPODS guard around the Internal_CryptoSwift_PBDKF2 import, which only existed because CocoaPods compiled everything into a single module. Also corrects the dependency list in the README, which credited Boilertalk's secp256k1.swift — the pod's dependency, never the package's.
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.
Why
The pod cannot be kept correct, and this is not a judgement call about effort:
BigIntsecp256k1.swift(Boilertalk)LoggingGenericJSONNone of these will move again —
attaswift/BigIntno longer ships a podspec at all. The pod builds against a different secp256k1 implementation from the package, which is what #367 ran into. And trunk stops accepting new podspecs on 2026-12-02.We looked at publishing one last compatible release. It does not work: the
swift-secp256k1pod exists only from 0.20.0, every version requires iOS 18.0 / macOS 15.0 against our podspec's iOS 13.0, and it vends only theP256Kmodule, which does not expose the C symbolsKeyUtiluses. A working pod would need an iOS 18 floor plus aKeyUtilrewrite, or vendoring the libsecp256k1 C sources ourselves.This breaks nothing
Published versions stay on trunk and remain installable. Anyone already depending on
web3.swiftkeeps resolving 1.6.0 (2023-03-24) indefinitely — there just will not be new ones.Deprecating the pod on trunk is a separate, manual step. It is currently failing with a server-side 503 from CocoaPods, so it is pending and does not block this.
Changes
web3.swift.podspecGemfile/Gemfile.lock, which existed only to run the pod toolingKeyDerivation.swift: drop the#if !COCOAPODSguard around theInternal_CryptoSwift_PBDKF2import — it only existed because CocoaPods compiled everything into one module. The only source change.secp256k1.swift— the pod's dependency, never the package's.gitignore: drop the CocoaPods blockCloses the loop on #378 and #370, both already closed as not planned.
439 tests, 0 failures, lint clean.
🤖 Generated with Claude Code