Zcash CocoaPods to SPM integration (iOS) [draft]#6050
Conversation
Reconcile the WIP react-native 0.83 / new-architecture work (originally on the william/rn83 branch) onto current npm-based develop. Bump react 19.2.0, react-native 0.83.2, react-native-reanimated 4.2.x, react-native-worklets 0.7.x, react-native-bootsplash 7.x and expo 55; keep develop's newer crypto native deps (piratechain, zcash, zano). Port the native iOS (Expo new-arch AppDelegate, Info.plist) and Android (newArchEnabled, gradle, MainActivity/ MainApplication) changes, drop the obsolete r3-hack Reanimated-3 Android workaround in favor of Reanimated 4 under the new architecture, and remove the no-longer-needed react-native 0.79 patch.
Add a testID to the GettingStarted scene's sign-in link so the RN 0.83 upgrade verification flow can reach the login screen by selector.
The Sentry-integrated 'Bundle React Native code and images' build phase
passes a multi-word command (/bin/sh sentry-xcode.sh react-native-xcode.sh)
to react-native's with-environment.sh, which RN 0.83 executes as a single
quoted token ("$1"). That treats the whole command as one nonexistent
path and fails the build with 'No such file or directory'.
Patch with-environment.sh to eval its argument, restoring the multi-word
execution the Sentry wrapper relies on.
Bump react-native-reanimated 4.2.1 to 4.5.0 and react-native-worklets 0.7.2 to 0.10.0 (its required peer). Adapt to the 4.5 type API: the layout-animation builder classes became generic, so EdgeAnim types entering/exiting/layout at the BaseAnimationBuilder base; useAnimatedStyle now returns an opaque AnimatedStyleHandle, so the styled HOC and SceneWrapper accept the exported AnimatedStyle type. Regenerate the createAnimatedComponent return-type patch for 4.5.0.
Add the ZcashLightClientKit Swift Package (zcash-swift-wallet-sdk) to edge.xcodeproj and patch the react-native-zcash podspec to stop vendoring the SDK, so the bridge imports ZcashLightClientKit from the SPM module. Pods and SPM coexist via CocoaPods 1.16's SPM integration. Draft: a known gRPC version collision with react-native-piratechain's gRPC-Swift 1.8 pod (vs the SPM SDK's grpc-swift 1.27.5) under static linkage still needs resolving by migrating PirateLightClientKit to SPM.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub. |
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
Draft: iOS Zcash SDK SPM integration validation
Stacked on the RN 0.83 + reanimated 4.5.0 base (PR #6047). Adds the ZcashLightClientKit Swift Package to edge.xcodeproj and patches the react-native-zcash podspec to stop vendoring the SDK (pairs with EdgeApp/react-native-zcash#68).
Purpose of this draft PR: validate the iOS SPM build on CI. The local headless
xcodebuilddeadlocks inwaitForRemoteSourcePackagesToFinishLoading, so CI is the build driver.Known remaining issue: static-link gRPC collision (piratechain pod gRPC-Swift 1.8 vs SPM grpc-swift 1.27.5). Fix in progress: migrate PirateLightClientKit to SPM so the resolver unifies the gRPC/NIO/SwiftProtobuf/SQLite graph.
https://claude.ai/code/session_019nYrjJ47fMBDnp9XdXT33g