App links against the GameKit framework, reject by Apple Reviewer!

How to unlink the GameKit framework?

My game do not need game center, but the Unity generated osx build contain GameKit framework Lib.
Apple request my to unlink the GameKit framework, how can I do?

Unity version 2018.2, mono build.

P.S. Using IL2CPP build will direct reject on uploading file to Appstore, because the include some lib only support i386, and do not have x64.

Same with me. ERROR ITMS-90240: "Unsupported Architectures. i386

Remove GameKit with a hack:

HACK TO REMOVE GAME-CENTER LIBRARY FROM BUILD. (failed submission for this)

   
Download MachOView http://sourceforge.net/projects/machoview/
   
Open the binary in Contents/MacOS
   
Expand the "Load Commands" section
   
Look for LC_LOAD_WEAK_DYLIB (GameKit)
   
Notice the command size is 88, we need to find a same length framework to replace it, we'll use Webkit
   
Change Command Data to 0x0000000C
   
Change Current Version to 0x02194A09
   
Change Name to 0x2F53797374656D2F4C6962726172792F4672616D65776F726B732F5765624B69742E6672616D65776F726B2F56657273696F6E732F412F5765624B697400
   
File -> Save
    Run
2 Likes

.NET 4.x with both MONO and IL2CPP fails because the include some lib only support i386, and do not have x64.

I confirm that only .NET 3.5 MONO works, it should pass with the above GameKit framework hack. Unity guys and girls please check this.

Forgot to say that I use latest Unity 2018.2.0f2 mac

No Unity guys there? Why no Unity people reply it.

Same issue…
Unity 2018.2.0

Same issue here. I’ve applied giorgos_gs’ fix with the minor update that the latest WebKit version is 025C0407 , and the command I found is LC_LOAD_DYLIB, rather than LC_LOAD_WEAK_DYLIB.

Same issue with latest Unity,
From Apple
Guideline 2.1 - Performance

Your app links against the GameKit framework but does not appear to include Game Center functionality.

Next Steps

If your app does include Game Center functionality, please respond to this message in Resolution Center with steps on how to locate it within your app.

If you do not intend to use Game Center, please unlink the GameKit framework. If you would like to use Game Center, please add the “com.apple.developer.game-center” entitlement and submit an updated binary for review.

Resources

For information on Game Center, please review the Game Center Programming Guide.

If you are using a third-party framework that links against the GameKit framework, you may want to contact the third-party framework provider for help on unlinking from it.

Alternatively, this framework may reside in a library included with your application. If you do not have access to the library’s course, you may be able to search the compiled binary using “strings” or “otool” command line tools. The “strings” tools can output a list of methods that the library calls and “otool -ov” will output the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.

Roll back to 2017! Forget 2018.

Unity don’t care you can submit to app store or not. Up to now no Unity person reply this.
Some guys said no one force you publish to app store.

Has anyone reported this as a bug to Unity? It’s obviously a problem.

Unity folks, can we get an official response?

Thanks!

  • David

That shouldn’t be necessary- the fix that giorgo_gs outlined a few posts above seems to work pretty well.

Obviously a patch to unity itself would be appreciated, but rolling back to 2017 isn’t needed.

My game was just approved, and no removal of GameKit was necessary. It was built with Unity 2018.2.8f1. Perhaps a plugin is actually what’s causing the issue?

My last try is 2018.2.2, after fail to review. I have rolled back to 2017. Haven’t try any more. But I monitor unity new release week by week. Do not see any release note said solved the GameKit problem.

Is Unity silently solve this problem and do not claim it is bug? or You just pass the apple review by lucky?

I don’t know…

Same issue here…

Unity 2018.3.b8 app rejected too. Created empty project , GameKit is linked in UnityPlayer.dylib . So looks definitely a Unity Bug. Sending a bug report.

Unity Issue Tracker - [macOS] GameKit reference in the application when Game Center is not used, App Store rejects the build , upvote here :slight_smile:

This hack works with 2018.3 too, update approved.
The file that needs to be modified with 2018.3 is UnityPlayer.dylib

2 Likes

My app was approved today after applying the hack above to my executable in Contents/MacOS. Unity should fix this bug asap, it is a showstopper, please upvote the bug as well.

2 Likes