Undefined symbols for architecture x86_64 while implementing firebase messaging in Libgdx ios module

687 Views Asked by At

I am getting following error while installing app on iOS simulator. I am using Android Studio to build and compile my libgdx project.

RoboVM version 2.3.10-SNAPSHOT Xcode 11.3.1 Android Studio 4.1

[

ERROR] 22:33:38.721 Undefined symbols for architecture x86_64:
[ERROR] 22:33:38.721   "_OBJC_CLASS_$_FIRInstallations", referenced from:
[ERROR] 22:33:38.735       objc-class-ref in FirebaseInstanceID(FIRInstanceID.o)
[ERROR] 22:33:38.735       objc-class-ref in FirebaseInstanceID(FIRInstanceIDTokenOperation.o)
[ERROR] 22:33:38.881   "_FIRInstallationIDDidChangeNotification", referenced from:
[ERROR] 22:33:38.895       -[FIRInstanceID observeFirebaseInstallationIDChanges] in FirebaseInstanceID(FIRInstanceID.o)
[ERROR] 22:33:40.900   "_kFIRInstallationIDDidChangeNotificationAppNameKey", referenced from:
[ERROR] 22:33:40.900       -[FIRInstanceID installationIDDidChangeNotificationReceived:] in FirebaseInstanceID(FIRInstanceID.o)
[ERROR] 22:33:40.900 ld: symbol(s) not found for architecture x86_64
[ERROR] 22:33:40.900 clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR] Couldn't compile app
org.apache.commons.exec.ExecuteException: Command '[/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++, -o, /Users/amar/Desktop/pujan/One-Line-Puzzle/ios/robovm-build/tmp/ios-olp/ios/x86_64/IOSLauncher, -arch, x86_64, -Wl,-filelist,/Users/amar/Desktop/pujan/One-Line-Puzzle/ios/robovm-build/tmp/ios-olp/ios/x86_64/objects0, -w, -L, /Users/amar/.robovm-sdks/robovm-2.3.10-SNAPSHOT/lib/vm/ios/x86_64, -ObjC, -exported_symbols_list, /Users/amar/Desktop/pujan/One-Line-Puzzle/ios/robovm-build/tmp/ios-olp/ios/x86_64/exported_symbols, -Wl,-no_implicit_dylibs, -Wl,-dead_strip, -F/Users/amar/Desktop/pujan/One-Line-Puzzle/ios/sim_libs, -fPIC, -mios-simulator-version-min=8.0, -isysroot, /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.2.sdk, -Xlinker, -sectcreate, -Xlinker, __TEXT, -Xlinker, __entitlements, -Xlinker, /Users/amar/Desktop/pujan/One-Line-Puzzle/ios/robovm-build/tmp/ios-olp/ios/x86_64/Entitlements-Simulated.plist, -lrobovm-bc, -force_load, /Users/amar/.robovm-sdks/robovm-2.3.10-SNAPSHOT/lib/vm/ios/x86_64/librobovm-rt.a, -lrobovm-debug, -lrobovm-core, -lgc, -lpthread, -ldl, -lm, -lz, -liconv, -lsqlite3, -framework, Foundation, -framework, FirebaseMessaging, -framework, FirebaseInstanceID, -framework, Protobuf, -framework, FirebaseCore, -framework, GoogleUtilities, -framework, PromisesObjC, -framework, UIKit, -framework, OpenGLES, -framework, QuartzCore, -framework, CoreGraphics, -framework, OpenAL, -framework, AudioToolbox, -framework, AVFoundation, -force_load, /Users/amar/.robovm/cache/ios/x86_64/release/Users/amar/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.9.10/f301537137e0dffa0c84b6c6626dc8de51877f8a/gdx-platform-1.9.10-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libgdx.a, -force_load, /Users/amar/.robovm/cache/ios/x86_64/release/Users/amar/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.9.10/f301537137e0dffa0c84b6c6626dc8de51877f8a/gdx-platform-1.9.10-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libObjectAL.a, -lz, -framework, MobileCoreServices, -Xlinker, -sdk_version, -Xlinker, 13.2, -Xlinker, -rpath, -Xlinker, /usr/lib/swift, -Xlinker, -rpath, -Xlinker, @executable_path/Frameworks, -Xlinker, -rpath, -Xlinker, @loader_path/Frameworks]' failed  (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
    at org.robovm.compiler.util.Executor.exec(Executor.java:344)
    at org.robovm.compiler.util.ToolchainUtil.link(ToolchainUtil.java:404)
    at org.robovm.compiler.target.AbstractTarget.doBuild(AbstractTarget.java:290)
    at org.robovm.compiler.target.ios.IOSTarget.doBuild(IOSTarget.java:343)
    at org.robovm.compiler.target.AbstractTarget.build(AbstractTarget.java:284)
    at org.robovm.compiler.Linker.link(Linker.java:449)
    at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:525)
    at org.robovm.compiler.AppCompiler.build(AppCompiler.java:964)
    at org.robovm.idea.compilation.RoboVmCompileTask$3.doCompile(RoboVmCompileTask.java:310)
    at org.robovm.idea.compilation.RoboVmCompilerThread.run(RoboVmCompilerThread.java:66)
1

There are 1 best solutions below

0
pujan kc On BEST ANSWER

FirebaseInstallations framework is missing from you libs folder as indicated in the second line of your error log.

Also the following list of frameworks are needed to use the messaging-robopod.

    <framework>FIRAnalyticsConnector</framework>
    <framework>FirebaseAnalytics</framework>
    <framework>FirebaseCore</framework>
    <framework>FirebaseCoreDiagnostics</framework>
    <framework>FirebaseInstallations</framework> <!-- !-->
    <framework>FirebaseMessaging</framework>
    <framework>GoogleAppMeasurement</framework>
    <framework>GoogleDataTransport</framework> <!-- ! -->
    <framework>GoogleDataTransportCCTSupport</framework> <!-- ! -->
    <framework>GoogleUtilities</framework>
    <framework>nanopb</framework>
    <framework>PromisesObjC</framework>
    <framework>Protobuf</framework>

Make sure you include all of these. The GoogleDataTransportCCTSupport might not be mandatory.