javafirebasegradlelibgdxrobovm

Libgdx firebase robovm binding


I am trying to import Firebase Messaging and Google Mobile Ads frameworks into my game which is developed in LibGDX and bridged to iOS with RoboVM.



When i only try to import Firebase Messaging, it requires FirebaseCore then it requires another frameworks until the FirebaseNanoPB which is not exist in the latest SDK(5.20.2).

  //robovm.xml
  <frameworkPaths>
        <path>libs</path>
    </frameworkPaths>
  <libs>
      <lib>z</lib>   
  </libs>
  <frameworks>
    <framework>UIKit</framework>
    <framework>OpenGLES</framework>
    <framework>QuartzCore</framework>
    <framework>CoreGraphics</framework>
    <framework>OpenAL</framework>
    <framework>AudioToolbox</framework>
    <framework>AVFoundation</framework>
    <framework>CoreMotion</framework>
    <framework>SafariServices</framework>

    <framework>FirebaseMessaging</framework>
    <framework>Protobuf</framework>


    <framework>GoogleToolboxForMac</framework>
    <framework>FirebaseCore</framework>
    <framework>FirebaseCoreDiagnostics</framework>
    <framework>FirebaseInstanceID</framework>
    <framework>FirebaseAnalytics</framework>
    <framework>GoogleMobileAds</framework>
    <framework>nanopb</framework>


  </frameworks>

Here is my project folder in ios package.
Also here is my gradle stacktrace output.

tform-1.9.9-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libObjectAL.a 
    -framework MobileCoreServices -Xlinker -sdk_version -Xlinker 12.1 -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks

ld: framework not found FirebaseNanoPB
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I actually do not need to import Firebase Analytics but, i suppose it depend on FirebaseCore etc...


Solution

  • Probably you are using outdated version of RoboPods. Latest Firebase bindings are version 5.1.16 and robopod's version of it is 2.2.3-SNAPSHOT. Also remove all references to Firebase frameworks from robovm.xml, as these are being merged from Robopod itself.
    Also check this issue on RoboPods GitHub repository that has similar spelling.