Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions RNRive.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -38,28 +38,6 @@ else
Pod::UI.puts "@rive-app/react-native: Using experimental Rive runtime backend"
end

# Xcode 26 workaround: strip .Swift Clang submodule from RiveRuntime's prebuilt
# modulemaps to prevent ODR conflicts with locally-compiled Swift C++ interop.
# See: https://github.com/rive-app/rive-nitro-react-native/issues/173
if defined?(Pod::Installer)
module RiveXcode26SwiftModuleFix
def run_podfile_pre_install_hooks
rive_dir = File.join(sandbox.root.to_s, 'RiveRuntime')
if Dir.exist?(rive_dir)
Dir.glob(File.join(rive_dir, '**', 'module.modulemap')).each do |path|
content = File.read(path)
next unless content.include?('RiveRuntime.Swift')
cleaned = content.gsub(/\nmodule RiveRuntime\.Swift \{[^}]*\}\n?/m, "\n")
File.write(path, cleaned)
end
end
super
end
end

Pod::Installer.prepend(RiveXcode26SwiftModuleFix)
end

Pod::Spec.new do |s|
s.name = "RNRive"
s.version = package["version"]
Expand Down
19 changes: 0 additions & 19 deletions example/ios/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,24 +33,5 @@ target 'RiveExample' do
:mac_catalyst_enabled => false,
# :ccache_enabled => true
)

# Xcode 26 / Swift 6.2 workaround: strip the RiveRuntime.Swift submodule
# from RiveRuntime's modulemaps. Without this, Clang sees two conflicting
# definitions of swift::Optional / swift::String (one from the pre-built
# RiveRuntime XCFramework compiled with Swift 6.1, one from NitroModules
# compiled fresh with Swift 6.2) and fails with ODR "different definitions
# in different modules" errors.
# See: https://github.com/rive-app/rive-nitro-react-native/issues/173
rive_dir = File.join(installer.sandbox.root.to_s, 'RiveRuntime')
if Dir.exist?(rive_dir)
Dir.glob(File.join(rive_dir, '**', 'module.modulemap')).each do |path|
content = File.read(path)
next unless content.include?('RiveRuntime.Swift')
cleaned = content.gsub(/\nmodule RiveRuntime\.Swift \{[^}]*\}\n?/m, "\n")
File.write(path, cleaned)
puts "[RNRive] Stripped RiveRuntime.Swift submodule from #{path}"
end
end

end
end
Loading