rive-app / rive-app/rive-flutter
rive_native prebuilt iOS binaries fail to link with Xcode 26 — undefined symbol errors
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 1.5k
- Forks
- 240
- PR merge metrics
- No merged PRs in 30d
Description
Description
rive_native 0.1.4 fails to build on iOS when using Xcode 26.x (the current stable Xcode for macOS Tahoe). The
prebuilt static libraries included in the package were compiled with Xcode 16.1 and are incompatible with Xcode 26's
linker/toolchain.
Environment
- Flutter: 3.29.3
- rive: 0.14.4
- rive_native: 0.1.4
- Xcode: 26.4 (Build 17E192) — stable release, March 24, 2026
- macOS: Tahoe (26.x)
- Target: iOS (arm64)
Error
Running flutter build ipa --release produces the following linker errors:
Error (Xcode): Undefined symbol: ReadWriteRing::currentRead()
Error (Xcode): Undefined symbol: ReadWriteRing::ReadWriteRing()
Error (Xcode): Undefined symbol: _createRiveRenderer
Error (Xcode): Undefined symbol: _createRiveRendererContext
Error (Xcode): Undefined symbol: _deleteFlutterRenderer
Error (Xcode): Undefined symbol: _destroyRiveRenderer
Error (Xcode): Undefined symbol: _destroyRiveRendererContext
Error (Xcode): Undefined symbol: _disposeYogaStyle
Error (Xcode): Undefined symbol: _factoryFromRiveRendererContext
Error (Xcode): Undefined symbol: _loadRiveFile
Error (Xcode): Undefined symbol: _rewindRenderPath
Error (Xcode): Undefined symbol: _riveFontDummyLinker
Error (Xcode): Undefined symbol: _riveLock
Error (Xcode): Undefined symbol: _riveUnlock
Error (Xcode): Undefined symbol: _setGPU
Error (Xcode): Undefined symbol: _stopAudioSound
Error (Xcode): Linker command failed with exit code 1
Steps to Reproduce
- Use macOS Tahoe with Xcode 26.4 (stable)
- Add
rive: ^0.14.0as a dependency (or transitively viaawesome_dialog ^3.3.0) - Run
flutter build ipa --release
Additional Context
- Xcode 16.4 cannot run on macOS Tahoe, so downgrading Xcode is not an option.
- Apple will require Xcode 26 SDK for all App Store submissions starting April 28, 2026.
- Pinning to
rive 0.13.13(which usesrive_commoninstead ofrive_native) avoids the linker error but causes a
SIGSEGV crash at runtime on iOS 26.4 during Dart GC mark phase. - The root cause appears to be that the prebuilt
.abinaries shipped withrive_nativewere compiled with Xcode
16.1 and are ABI-incompatible with Xcode 26's toolchain.
Expected Behavior
rive_native should ship prebuilt binaries compiled with Xcode 26, or provide a build-from-source path that works
with the current stable Xcode.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure with rive_native 0.1.4 on macOS Tahoe and Xcode 26.4 using flutter build ipa --release. Investigate the prebuilt static libraries shipped in the package and the available build-from-source path. Done means an iOS arm64 release build links successfully with the current stable Xcode, without the listed undefined symbols.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, ios
- Domain
- build-system, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100