IOS binding error with Libgdx & Google Play Games

Hello MOE team,

I get a MOE binding error on “Google play games” framework sign-in method “((GPGManager)GPGManager.sharedInstance()).signIn();” on my IOS app

/Volumes/SSD/gh-moe-master/moe/natj/natj/src/main/native/natj/ObjCRuntime.mm:1474 FAILURE: Binding class refers to class GPGManager, but it can not be found.

I followed Kristof Liliom - Migeran Ltd at Thu, 07/28/2016 - 07:23 post’s on intel’s forum:
https://software.intel.com/en-us/forums/multi-os-engine/topic/636311?language=fr

I build IOS frameworks to jars with “Link third party framework to Xcode” and added them to gradle build “compile fileTree(dir: ‘lib’, include: ‘*.jar’)” in gradle build file. GPG java methods are correctly resolved in Android studio.

I added all framework / bundles needed in Xcode but no luck, I am still getting the same error when calling Sign in method.

Multi OS engine 1.2.0
Libgdx 1.9.5-SNAPSHOT

I assume this is “known issue” #21 as mentionned in release note :
https://multi-os-engine.org/moe-1.2.0-release-notes/

Will it be fixed in version 1.3.0 ? If so, do you have an ETA for this release ?

Best regards,
Paul - realnuts.co

Hi,

it is possible to get it working. Maybe you need to add the -ObjC flag like it is described at the end of step 4

“Add the ObjC linker flag to the app target’s build settings. In your target settings, select Build Settings > Linking > Other Linker Flags, then add -ObjC as a flag.”

To make it work fine beside add -OBJC tag you can add -keep class org.moe.xxx** { ; }
-keep enum org.moe.xx
* { *; } to proguard.append.cfg, where xxx is your generate binding name

thanks for your replies.

Its working now with -ObjC flag ! :slight_smile: