Consume Zcash SDK via Swift Package Manager - #68
Draft
j0ntz wants to merge 1 commit into
Draft
Conversation
Stop vendoring the ZcashLightClientKit source and libzcashlc.xcframework into the pod. The host app now adds the zcash-swift-wallet-sdk Swift Package, and this package ships only the React Native bridge, which imports ZcashLightClientKit from the SPM module. Drop the gRPC-Swift and SQLite.swift pod dependencies (now provided transitively by the SPM SDK) and the zcashlc.h bridging include.
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.
Summary
Migrate the iOS Zcash SDK (ZcashLightClientKit) from a vendored CocoaPods dependency to Swift Package Manager, per the Zcash SDK's move to SPM-only distribution.
libzcashlc.xcframework, or the gRPC-Swift / SQLite.swift pod dependencies. The host app addszcash-swift-wallet-sdk(the official SDK) as a Swift Package; this package now ships only the React Native bridge.RNZcash.swiftimportsZcashLightClientKitfrom the SPM module (previously the SDK was compiled into the same pod module, so no import was needed).zcashlc.hinclude from the bridging header (the FFI is internal to the SPM SDK).Host-app integration (edge-react-gui)
The consuming app must add the
ZcashLightClientKitSwift Package to its Xcode project and link it to the app target. Because CocoaPods still provides every other dependency, Pods and SPM coexist in the same project (CocoaPods 1.16 auto-mirrors the SPM product into the Pods project so the RN bridge pod can import the module).Status: DRAFT
This is not publishable/mergeable yet:
react-native-piratechainstill pullsgRPC-Swift ~> 1.8as a Pod while the SPM Zcash SDK pullsgrpc-swift 1.27.5— under static linkage that collides. The clean fix is to also migrate piratechain's SDK (PirateLightClientKit, which is SPM-ready) to SPM so the resolver unifies the gRPC/NIO/SwiftProtobuf/SQLite graph.scripts/updateSources.tsto stop vendoring the now-unused SDK source into the tarball.https://claude.ai/code/session_019nYrjJ47fMBDnp9XdXT33g