Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[URGENT]MAC App review team rejected because GameKit framework linked!

Discussion in 'Editor & General Support' started by BBRome, Aug 9, 2014.

  1. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    We do not use any Game Center functionality, is possible to unlink the GameKit?

    --------------
    2.3
    The app links against the GameKit framework but has no apparent Game Center functionality. If we've missed functionality within your app that uses Game Center, please use the Resolution Center to describe where we can find this functionality.

    If you do not intend to use Game Center functionality, please unlink the GameKit framework, otherwise, if you intend to use Game Center functionality, please add the "com.apple.developer.game-center" entitlement and submit an updated binary.

    Apple
    ------------
    Hello,
    Game Canter is not active in the app identifier so Users are not advertised about Game Center functionality.
    We do not any GameKit framework API call.
    If you think that this version of the game is not good enough simply tell us and we will delete
    Thank you.

    • Reasons
    • 2.3: Apps that do not perform as advertised by the developer will be rejected
    Thank you for your response.

    We advise that you unlink the GameKit framework.

    We look forward to reviewing your revised binary.
     
  2. NomadKing

    NomadKing

    Joined:
    Feb 11, 2010
    Posts:
    1,461
    What version of Unity are you using? What 3rd party assets / plugins are you using?
     
  3. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    MAC version No Plugins No 3rd party asset
     
  4. NomadKing

    NomadKing

    Joined:
    Feb 11, 2010
    Posts:
    1,461
    Are you using anything from the Social API?
     
  5. GlutenFreeGames

    GlutenFreeGames

    Joined:
    Jun 13, 2013
    Posts:
    51
    Hey BBRome, I am in the same boat as you! Never had a problem before and got this error out of the blue with my latest submission. No plugins and few third party assets here too. Let me know if you find a solution and I'll do the same!
     
  6. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    No social...

    Unity last version 4.5.2.f1
     
  7. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    ok
     
  8. CodeMonke234

    CodeMonke234

    Joined:
    Oct 13, 2010
    Posts:
    181
    Not sure what hte issues is - but In Xcode, when you build the ipa, remove GameKit from the linked libraries
     
  9. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    any news from Unity guys?
    we are stuck...
     
  10. NomadKing

    NomadKing

    Joined:
    Feb 11, 2010
    Posts:
    1,461
    Did you try adding the entitlement Apple suggested and resubmitting? Since Unity added a few social features in 4.x.x, it may be a requirement now whether you use them or not.
     
  11. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    No if you do that, they want Game Center functionality(if you read carefully), I have my own ranking system
     
  12. yoonitee

    yoonitee

    Joined:
    Jun 27, 2013
    Posts:
    2,363
    Hi, I'm having the same problem. I can't turn off Game Center in capabilities without it having linking errors. (Unity 4.2 Xcode 5.1.1)

    But then again, if I put game-center in my App ID and don't use the Game Center will my app get rejected?

    How can we unlink the Game Center library if Unity links to it?

    I would like to hear from someone who made an iPhone app WITHOUT game centre. What settings did you use?

    Did you try turning OFF the capability of Game Center in Xcode and the manually adding GameKit library? I hear some people said that works.

    This is a horrible bug. :confused: Unity must be linking to the game kit even if its not needed. Maybe Apple has changed it's submission policy recently due to game centre abuse!
     
    Last edited: Aug 12, 2014
  13. NomadKing

    NomadKing

    Joined:
    Feb 11, 2010
    Posts:
    1,461
    This is entirely possible, and it always causes hassle when they do.

    The way I see it, if you're sat waiting for someone to post how to fix the problem, you may as well have added the game-center tag to the entitlements and re-submitted anyway. Worst case they reject it again. Best case it fixes the problem. If someone posts back with more info about a fix you can simple cancel the submission and re-upload again.

    I really don't see a downside to trying it.
     
  14. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    any news from Unity guys?

    all on vacation?
     
  15. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    Here they are I believe we can not do anything other than using the game center
    -------------
    Social API is Unity’s point of access to social features, such as:

    • User profiles
    • Friends lists
    • Achievements
    • Statistics / Leaderboards
    It provides a unified interface to different social back-ends, such as XBox Live or GameCenter, and is meant to be used primarily by programmers on the game project.

    The Social API is mainly an asynchronous API, and the typical way to use it is by making a function call and registering for a callback to when that function completes. The asynchronous function may have side effects, such as populating certain state variables in the API, and the callback could contain data from the server to be processed.

    The Social class resides in the UnityEngine namespace and so is always available but the other Social API classes are kept in their own namespace, UnityEngine.SocialPlatforms. Furthermore, implementations of the Social API are in a sub-namespace, like SocialPlatforms.GameCenter.
     
  16. jonas-echterhoff

    jonas-echterhoff

    Unity Technologies

    Joined:
    Aug 18, 2005
    Posts:
    1,666
    This sounds like Apple has changed their interpretation of their submission rules.

    Unity does indeed always link the GameCenter framework, as we actually don't link the player executable on the machine running Unity, but only when we make a build of Unity. Ie, all Unity games shipped with a specific version of Unity ship the same player executable, and only differ in the data files used. So we don't know if GameCenter will be used at player link time, so we always link it.

    We will try to find out with Apple if this rule change is intentional, and if it is, we will need to find some workaround (like dynamically loading symbols from GameCenter at runtime, instead of linking against the framework). I'll keep you updated once I know more.
     
    Sailendu and NomadKing like this.
  17. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    Thank you Jonas,

    Waiting for update, I tried using the Social API, but the first approach has been tough(MAC release), can't
    Autenticate the player (Social.localUser.Authenticate(callBack)).
     
  18. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
    Short update: we got in touch with Apple and they are asking for rejected app's ID or name. Everybody who got affected by this issue please share these details.
    Thanks!
     
  19. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    here's mine:

    Bundle ID : com.blab.showJumpingFREEMAC

    Apple ID : 901739141

    TypeMac OS X App
     
  20. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
  21. varie-tea

    varie-tea

    Joined:
    Jul 4, 2012
    Posts:
    24
    The update for our game has been rejected too (2nd time), now with more details:

    If you are using a third-party framework that links against the GameKit framework, you may wish to consult with them 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 source, you may be able to search the compiled binary using "strings" or "otool" command line tools. The "strings" tool can output a list of the 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.

    Name: Get The Cake!
    https://itunes.apple.com/gb/app/get-the-cake!/id899567176?mt=12&ls=1

    Bundle ID: unity.sharadise.Get The Cake!

    Apple ID: 899567176

    Type: Mac OS X App
     
  22. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
  23. i9mobile

    i9mobile

    Joined:
    Aug 8, 2013
    Posts:
    54
    any news on how to solve this?

    Here's my:
    SKU: 2014.08.21
    Apple ID: 911511947
     
    Last edited: Aug 23, 2014
  24. RaptorX81

    RaptorX81

    Joined:
    Apr 28, 2014
    Posts:
    12
    I also got this problem today. The rejected build happened with 4.5.2.

    Apple ID : 909830514

    I resubmitted the same build with Unity 4.5.3 in meantime.
     
  25. varie-tea

    varie-tea

    Joined:
    Jul 4, 2012
    Posts:
    24
    Addendum: We were using build 4.5.1F3.
     
  26. CoherentRx

    CoherentRx

    Joined:
    Apr 30, 2014
    Posts:
    1
    Apple ID: 905044430
     
  27. smoggach

    smoggach

    Joined:
    Feb 13, 2014
    Posts:
    9
    Any updates on this? I'm running into this problem now with Unity 4.5.3f3. Looks like game kit is still linked in libIphone-lib. Will my app be rejected if I i link game kit but don't use it?
     
  28. brianchasalow

    brianchasalow

    Joined:
    Jun 3, 2010
    Posts:
    208
    i just submitted to the app store- i'm expecting to see mine rejected as well for this reason. we'll see in a couple days ... =/
     
  29. Rude-Bob

    Rude-Bob

    Joined:
    Aug 26, 2014
    Posts:
    4
    The same problem. Unity, please add the ability to remove GameKit from the build.
     
  30. ludometrics

    ludometrics

    Joined:
    Aug 27, 2014
    Posts:
    1
    Just had a rejection for this reason on an update to Gridlock too. App ID: 724594841
     
  31. cauldron_

    cauldron_

    Joined:
    Jan 21, 2014
    Posts:
    1
    My app was also rejected because of this problem. Here are the details of my app:

    Bundle ID : com.pedrocaldeira.Meteors

    Apple ID : 911427481

    TypeMac OS X App
     
  32. BBRome

    BBRome

    Joined:
    Jul 3, 2012
    Posts:
    373
    Any news from Unity guys?
     
  33. Selosoft

    Selosoft

    Joined:
    Jun 22, 2012
    Posts:
    69
    Rejected as well. Exact same reason of linking to game kit. Nothing I can do except wait until Unity creates a fix? Any word from Unity on this?


    Bundle ID : com.selosoft.ZonesOfRegulationMac

    Apple ID : 610273514

    Type Mac OS X App
     
  34. eviltwinartworks

    eviltwinartworks

    Joined:
    Aug 28, 2014
    Posts:
    1
    Us too. We have an autosave crash on the Mac store that desperately needs updating and Apple reject the latest version of the game for something so stupid but accept the original game 2 weeks ago?!

    Bundle ID com.eviltwinartworks.victoryatseamac

    Apple ID 886636419

    TypeMac OS X App
     
  35. lastcode

    lastcode

    Joined:
    Sep 3, 2012
    Posts:
    7
    Hello.

    I have the same problem.
    to reject Unity version 4.5.2 and 4.5.3


    Bundle ID: net.defensezone2.mac
    Apple ID: 564731595

    Bundle ID: net.defensezone2.mac.lite
    Apple ID: 564734004

    HELP ME !!! :)

    Thanks.
     
  36. Jaroslav-Stehlik

    Jaroslav-Stehlik

    Joined:
    Feb 20, 2012
    Posts:
    485
    Hello,

    we have same problem here.

    SKU: LittleMoleInSummerOSX
    Bundle ID: com.siliconjelly.littlemolesummer-osx
    Apple ID: 901416871
    Type Mac OS X App

    Thanks you.
     
  37. EnsenaSoft

    EnsenaSoft

    Joined:
    Nov 28, 2012
    Posts:
    13
    We have the same issue.
    Mac OS X App - Puzzles Under The Hill
    Bundle Id: com.ensenasoft.puzzlesunderthehillmac
    Apple Id: 912531535
     
  38. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
    Short update. Apple is still discussing issue internally. We are looking into one of the ways work around it, but it might have the same problem for apps, which are actually using Game Center.
     
  39. lastcode

    lastcode

    Joined:
    Sep 3, 2012
    Posts:
    7
    Hello.

    reject Unity version Release 4.5.3p3 28th August 2014
    http://forum.unity3d.com/threads/unity-patch-releases.246198/

    Bundle ID: net.defensezone2.mac
    Apple ID: 564731595

    Bundle ID: net.defensezone2.mac.lite
    Apple ID: 564734004

    Mantas Puida, You could solve this problem for iOS.
    If you remove GameKit from project xcode, then he's build with errors.

    Thanks.
     
  40. Pharaoh35

    Pharaoh35

    Joined:
    Dec 25, 2012
    Posts:
    57
    Last edited: Sep 3, 2014
  41. ricardo_arango

    ricardo_arango

    Unity Technologies

    Joined:
    Jun 18, 2009
    Posts:
    64
    Here is a workaround suggested by Shaun from CMUNE:

    "I patched the latest prod build, Unity 4.5.2f1.

    If you want to patch a later binary, there are two ways. First is quick and dirty, second is cleaner but may cause the binary to become unusable.

    First, here's the ABI mach-o reference, it's worth a read: https://developer.apple.com/library...ceptual/MachORuntime/Reference/reference.html

    Quick fix
    • 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
    Cleaner fix (untested)
    • Use optool to uninstall the dylib from the load commands https://github.com/alexzielenski/optool
      • optool uninstall -p "/System/Library/Frameworks/GameKit.framework/Versions/A/GameKit" -t <YourExecutable>
    • Open up MachOView and load the binary
    • Wait for the Dynamic Loader Info section to load
    • Under Binding info select Actions
    • Find the hex offset for the first GameKit entry and the entry following the last one
    • Using that range, open your hex editor and remove the segment
    • Open the binary in MachOViewer again - if it loads, you deleted the right data
    • Repeat for the Dynamic Loader Info/Lazy Binding Info/Actions section
    • Now under Binding Info, select Opcodes
    • The Opcodes are split into groups where the first Opcode defines an ordinal referencing a Load Command
    • For each of the Opcodes that reference a Load Command *higher* than the ordinal originally used by Gamekit, decrement BIND_OPCODE_SET_DYLIB_ORDINAL_IMM by one
    • Higher order dylib references use BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB 0x20, so you need to change the uleb128 data here
    • Repeat this for Lazy Binding Info. Each Opcode references a dylib which makes this step very tedious
    • File -> Save
    • Run"

    Shaun mentioned that their app was approved with the patched binary.
     
  42. Selosoft

    Selosoft

    Joined:
    Jun 22, 2012
    Posts:
    69
    Hi Ricardo,

    I'll try out your suggestion and will update with status once I receive word from Apple. Is there any plans to fix this Unity side soon? I hope Unity is taking this very serious as I'm sure there are lots of other pro users besides myself that would like to distribute without having to do some serious workarounds. Thank you for the tip and I look forward to a full solution Unity side soon. Any word on when this will be officially fixed would be great!
     
  43. EnsenaSoft

    EnsenaSoft

    Joined:
    Nov 28, 2012
    Posts:
    13
    New app with issue as well.
    Mac OS X App - Geo Composer
    Bundle Id: com.ensenasoft.geocomposermac
    Apple Id: 914601180

    Any word on a fix coming?
     
  44. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    I got knocked back with this a few days ago as well.

    App: com.sonicviz.chordskillsmas
    Apple ID 913217126

    Pretty damn annoying, as you need to wait a week or so before they even test it and even when you submit a fix it's back on the queue.

    Any fix? please????
     
    Last edited: Sep 5, 2014
  45. Culzean

    Culzean

    Joined:
    Jan 25, 2014
    Posts:
    48
    We've also suffered from this issue.
    • 2.3: Apps that do not perform as advertised by the developer will be rejected
    built using 4.5.2f1, is there further word on this from Apple? Links GameKit but no Game Centre functionality.

    Mac OS X app : Russian Front Mac
    Bundle id : com.huntedcow.russianfrontmac
    Apple ID : 911859090

    Thanks
     
  46. ng-pixels

    ng-pixels

    Joined:
    Dec 29, 2012
    Posts:
    68
    Same problem here.
    Any news?
     
  47. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    HELLO?
    knock knock?
    Earth to mars?

    This is kind of important, be great to get some status on it! ty!
     
    MrEsquire likes this.
  48. OneThree

    OneThree

    Joined:
    Oct 28, 2011
    Posts:
    181
    Same problem here. So infuriating (Apple is terrible to deal with).

    App: The Novelist
    Bundle ID: com.orthogonalgames.thenovelist
    Apple ID: 867169941

    I tried the hack included above, but the Command Data field won't accept the 0x0000000C value. What am I missing? Also, my app is built using 4.3.4f1.
     
  49. OneThree

    OneThree

    Joined:
    Oct 28, 2011
    Posts:
    181
    Has anyone gotten the MachOView hack to work?
     
  50. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    I'm not even bothering to waste my time with it because I shouldn't have to be hacking the project to get it distributed with a professional tool I have sunk a large chunk of money into.
     
    CloudyVR and Pharaoh35 like this.