Skip to content

Zcash CocoaPods to SPM integration (iOS) [draft]#6050

Draft
j0ntz wants to merge 5 commits into
developfrom
jon/zcash-spm-ios-integration
Draft

Zcash CocoaPods to SPM integration (iOS) [draft]#6050
j0ntz wants to merge 5 commits into
developfrom
jon/zcash-spm-ios-integration

Conversation

@j0ntz

@j0ntz j0ntz commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

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 xcodebuild deadlocks in waitForRemoteSourcePackagesToFinishLoading, 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

j0ntz added 5 commits June 22, 2026 23:12
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.
@socket-security

Copy link
Copy Markdown

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.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm @emnapi/runtime is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/react-native-bootsplash@7.3.2npm/jest@30.0.0npm/@emnapi/runtime@1.11.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@emnapi/runtime@1.11.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @expo/cli is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/@expo/cli@55.0.6

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@expo/cli@55.0.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @expo/cli is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/@expo/cli@55.0.6

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@expo/cli@55.0.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Publisher changed: npm @expo/log-box is now published by brentvatne

Author: brentvatne

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/@expo/log-box@55.0.5

ℹ Read more on: This package | This alert | What is unstable ownership?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Try to reduce the number of authors you depend on to reduce the risk to malicious actors gaining access to your supply chain. Packages should remove inactive collaborators with publishing rights from packages on npm.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@expo/log-box@55.0.5. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm fast-xml-parser is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/@react-native-community/cli-platform-android@20.0.0npm/@react-native-community/cli-platform-ios@20.0.0npm/@react-native-community/cli@20.0.0npm/fast-xml-parser@4.5.6

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/fast-xml-parser@4.5.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm node-forge is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/@walletconnect/web3wallet@1.10.1npm/node-forge@1.4.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-forge@1.4.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm react-native-bootsplash is 62.0% likely obfuscated

Confidence: 0.62

Location: Package overview

From: package-lock.jsonnpm/react-native-bootsplash@7.3.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/react-native-bootsplash@7.3.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm react-native-bootsplash is 60.0% likely obfuscated

Confidence: 0.60

Location: Package overview

From: package-lock.jsonnpm/react-native-bootsplash@7.3.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/react-native-bootsplash@7.3.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm react-native is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/react-native@0.83.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/react-native@0.83.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm @expo/log-box

Location: Package overview

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/@expo/log-box@55.0.5

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@expo/log-box@55.0.5. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm expo-modules-core

Location: Package overview

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/expo-modules-core@55.0.7

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/expo-modules-core@55.0.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm fetch-nodeshim

Location: Package overview

From: package-lock.jsonnpm/expo@55.0.0-preview.9npm/fetch-nodeshim@0.4.10

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/fetch-nodeshim@0.4.10. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

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