Repository navigation
Conversation
CocoaPods trunk goes read-only on 2026-12-02 and recent rive-ios releases (6.25.0, 6.27.0) never reached it. RNRive now pulls RiveRuntime with React Native's spm_dependency from the rive-ios GitHub release, pinned to the same runtimeVersions.ios. spm_dependency links but never embeds the dynamic RiveRuntime.framework, so the podspec also patches CocoaPods' embed script after installation (and steps aside if something already embeds it), and removes the duplicate xcframework signature that fails Xcode 26 archives.
Recognize the install_spm_frameworks call that a react-native with built-in spm_dependency embedding adds for RNRive, and mark the signature cleanup phase as always out of date to silence Xcode's warning.
React Native 0.87 builds static library pods using spm_dependency into the shared products dir (react/react-native#57602), so RNRive's build dir holds the only copy of the signature; only remove it when RNRive has a separate build dir. Embed RiveRuntime from the shared products dir, where Xcode copies it with either layout.
mfazekas
force-pushed
the
claude/spm-rive-ios-integration-6a19e0
branch
from
October 13, 2026 21:10
a3f378c to
ab39d5b
Compare
…ynamic CocoaPods only creates the [CP] Embed Pods Frameworks phase when an app has a dynamic pod framework, so JSC apps without one never embedded RiveRuntime and crashed at launch. Add RiveRuntime to the aggregate target's framework paths instead of patching the generated script, skip it when react-native's spm_dependency embeds it into an existing script, and warn when it is missing.
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.
CocoaPods trunk goes read-only on 2026-12-02, and rive-ios 6.25.0 and 6.27.0 never made it there. RNRive now pulls
RiveRuntimewith React Native'sspm_dependencyfrom the rive-ios GitHub release, pinned to the sameruntimeVersions.ios/RiveRuntimeIOSVersion.spm_dependencylinks the dynamicRiveRuntime.frameworkbut never embeds it, so apps crash at launch withLibrary not loaded: @rpath/RiveRuntime.framework.ios/rive_spm_embed.rbadds it to CocoaPods' embed script after installation, and does nothing if something else already embeds it (so it stays compatible with a future react-native that embeds SPM frameworks itself). No Podfile changes needed for consumers.Xcode also processes
RiveRuntime.xcframeworktwice (app and RNRive pod target), and Xcode 26 archives fail on the duplicateRiveRuntime.xcframework-ios.signature("already exists", exit 70). A script phase removes the pod-level copy, same fix as maplibre-react-native#1490.Tested on the example app (new and legacy backends, static/dynamic frameworks, Release archive) and expo57-example.