Skip to content

Error (Xcode): Undefined symbol ios build when using custome scheme #594

@rahmanecky-memberid

Description

@rahmanecky-memberid

Hello @HayesGordon
I've found the culprit for ios.
The plugin does not work for projects with flavors/ custom scheme.

In the podspec, the config=Debug does not match flavor or custom scheme name configs like Prod-debug, Production-release, or etc.

so , i got error like this when running app in ios:

Launching lib/main.dart on iPhone 16 Pro in debug mode...
Xcode build done. 36.5s
Failed to build iOS app
Error (Xcode): Undefined symbol: ReadWriteRing::currentRead()
Error (Xcode): Undefined symbol: ReadWriteRing::nextRead()
Error (Xcode): Undefined symbol: ReadWriteRing::ReadWriteRing()
Error (Xcode): Undefined symbol: _createRiveRenderer
Error (Xcode): Undefined symbol: _createRiveRendererContext
Error (Xcode): Undefined symbol: _destroyRiveRenderer
Error (Xcode): Undefined symbol: _destroyRiveRendererContext
Error (Xcode): Undefined symbol: _factoryFromRiveRendererContext
Error (Xcode): Undefined symbol: _riveLock
Error (Xcode): Undefined symbol: _riveUnlock
Error (Xcode): Undefined symbol: _setGPU
Error (Xcode): Linker command failed with exit code 1 (use -v to see invocation)
Could not build the application for the simulator.
Error launching application on iPhone 16 Pro.

Exited (1).

After searching through the issues, I found this comment: #issuecomment. Then, I manually updated my Podspec to look like this.

`s.pod_target_xcconfig = { "DEFINES_MODULE" => "YES", "EXCLUDED_ARCHS[sdk=iphonesimulator*]" => "i386",
"USER_HEADER_SEARCH_PATHS" => '"$(PODS_TARGET_SRCROOT)/../native/include"',
"LIBRARY_SEARCH_PATHS[config=Release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Production-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Staging-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Dev-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Dev-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Staging-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Prod-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[config=Profile*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
# "LIBRARY_SEARCH_PATHS[config=Debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/debug"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Dev-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Prod-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Staging-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Dev-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Production-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][config=Staging-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Dev-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Staging-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Production-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Dev-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Staging-release*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][config=Prod-debug*]" => '"$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator"',
"OTHER_LDFLAGS[config=Release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Dev-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Staging-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Production-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Dev-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Staging-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Prod-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[config=Profile*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
# "OTHER_LDFLAGS[config=Debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/debug/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Dev-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Staging-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Prod-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Dev-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Staging-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphoneos*][config=Production-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/release/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Dev-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Prod-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Staging-debug*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Dev-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Production-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",
"OTHER_LDFLAGS[sdk=iphonesimulator*][config=Staging-release*]" => "-Wl,-force_load,$(PODS_TARGET_SRCROOT)/../native/build/iphoneos/bin/emulator/librive_native.a -lrive -lrive_pls_renderer -lrive_yoga -lrive_harfbuzz -lrive_sheenbidi -lrive_decoders -llibpng -lzlib -llibjpeg -llibwebp -lminiaudio",

                        "CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
                        "CLANG_CXX_LIBRARY" => "libc++" }

`
I hope this can be resolved soon so that similar issues do not occur in the future.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions