rive-app / rive-app/rive-flutter

rive_native prebuilt iOS binaries fail to link with Xcode 26 — undefined symbol errors

Open
#622 0 comments 2 reactions 0 assignees View on GitHub

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

  1. Use macOS Tahoe with Xcode 26.4 (stable)
  2. Add rive: ^0.14.0 as a dependency (or transitively via awesome_dialog ^3.3.0)
  3. 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 uses rive_common instead of rive_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 .a binaries shipped with rive_native were 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.