Search Unity

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

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

  1. NaturalTech

    NaturalTech

    Joined:
    Mar 19, 2014
    Posts:
    4
    Hi, I'm having a problem with @jonas echterhoff solution. When I check my app with verbose=4, that returns the following:

    invalid signature (code or signature have been modified)
    In architecture: i386

    I use Prime for Store In-Apps ,Unity Social for Game Center and Mac App Store Toolset for codesigning.
    Unity 4.6.4f1

    any solution?
     
  2. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    Hello. I just got a Mac App Store rejection for "The app uses Game Center, however, the app is not linking against the GameKit framework."

    I built the game with 5.1.1p3. Should that have worked out of the box, or is the optool workaround still required?
     
  3. AdamLiu

    AdamLiu

    Joined:
    Mar 19, 2014
    Posts:
    50
    Built with Unity 5.1.2 p3. Still got rejected for the same reason:
    App has the Game Center entitlement without linking against the GameKit framework.
    So the "Unity 5 will automatically add or remove the GameKit linkage as needed if GameCenter if used or not" seems not working.
    So I'm guessing that Unity didn't manage to detect that I used the Game Center, and it's probably because I'm using a native plugin of OS X?
    To JJC1138, I think we should try the workaround mentioned by Jonas with the GitHub tool. And if Unity guys see this, please give some information on this issue.
     
    JJC1138 likes this.
  4. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    Hi there. I should have posted again on this thread earlier, but I used optool as described and it worked fine and my game was approved. Another thing I found that was useful is that you can use 'otool -L' on your binary to see what libraries it's linked against to check that optool worked properly.
     
    AdamLiu likes this.
  5. AdamLiu

    AdamLiu

    Joined:
    Mar 19, 2014
    Posts:
    50
    This is really good news and thanks for the quick reply. Cheers!
     
    JJC1138 likes this.
  6. AdamLiu

    AdamLiu

    Joined:
    Mar 19, 2014
    Posts:
    50
    Just a quick update: Finally, my game is approved by the Mac App Store, and the otool thing worked.
     
    NomadKing and JJC1138 like this.
  7. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    I just got the opposite; anyone know how to fix:
    The app has the Game Center entitlement without linking against the GameKit framework?
     
  8. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    So are you not actually using Game Center?
     
  9. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    I'm using game centre and enabled it in OSX build.
    But I do not know how to link to GameKit?
     
  10. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
  11. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Thanks, will try this but I do not know why this should be a non hack workaround.
    Basically I'm using Prime 31 plugins for game center and they solid and work.
    Using the mac toolkit from asset store, as only one I can find and always worked perfect for myself.
    I have selected Game Center and everything is in the backend.
    Using Unity 4.6.9 final.

    So basically Apple telling me it wants to be linked to GameKit, where as other people issue is they got rejected because it is linked to GameKit.

    So some confusion caused.
     
  12. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    Yeah sorry this thread does cover two different issues doesn't it. Either Unity, the Prime 31 plugins, or the Mac App Store Toolkit could implement this workaround, so I wonder if it's a problem with nobody quite being able to decide whose responsibility it is. :)
     
    MrEsquire likes this.
  13. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    They didn't actually implement that feature in Unity 5 as far as I could tell (I still had to apply the workaround manually with my Unity 5.1-built game).
     
  14. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Thanks for confirming,much appreciated

    Just bit annoyed about this, especially when they constantly adding new features to Unity that no one really been demanding or wanting. The deeper problem I assume is not many people making games for Mac and therefore not shouting enough :)
     
    JJC1138 likes this.
  15. Avisingh

    Avisingh

    Joined:
    May 18, 2013
    Posts:
    7
    Im also facing same problem . Tried to workout through optool buut when i enter commond it shows command not found
     
  16. Avisingh

    Avisingh

    Joined:
    May 18, 2013
    Posts:
    7
    Any one got solution?????? Please help me
     
  17. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    Are you specifying the full path to where you built optool?
     
  18. Avisingh

    Avisingh

    Joined:
    May 18, 2013
    Posts:
    7
    Yes i did ..... to make things clear i dragged and dropped the optool to terminal , and followed the command .
     
  19. Avisingh

    Avisingh

    Joined:
    May 18, 2013
    Posts:
    7
    The worst case is i cant find GameKit in my Contents/MacOS file through MachOView. Im confused now.

    Is the current Unity links the Game Center Dynamically ??? im using unity 4.6.8p3.
    Then that is what the apple want right . So am i going in right direction ?
     
    Last edited: Dec 14, 2015
  20. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    Unless something has changed recently, the Mac App Store requires you to statically link to GameKit if you use Game Center so we have to do that manually with optool. Can you post the exact command you're running, and the exact error you get?
     
  21. mcmonk

    mcmonk

    Joined:
    Sep 22, 2014
    Posts:
    13
    Are there any progress with this issue?

    I'm having the same problem, using Unity 5.2.4f1
     
  22. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    The issue is solved, check the thread in iOS section of the forum..
     
  23. Davlin

    Davlin

    Joined:
    Feb 19, 2013
    Posts:
    54
    Have been rejected by Apple today. I am using Unity 2018.2
     
  24. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,421
    For linking GameKit?
     
  25. Davlin

    Davlin

    Joined:
    Feb 19, 2013
    Posts:
    54
    Yes.
    I have achievements in my game.

    "We found that your app incorrectly implements sandboxing.

    Specifically, we found that your app provides the following functionality but is missing the associated entitlement:

    - functionality: Game Center
    - required entitlement: "com.apple.developer.game-center"
     
  26. dmko

    dmko

    Joined:
    Jun 15, 2014
    Posts:
    65
    Also getting rejected - is there any way in 2018 to not link game center?
     
  27. u15

    u15

    Joined:
    Apr 2, 2018
    Posts:
    2
    We are having same problem app rejected due to

    Guideline 2.1 - Performance
    Your app still links against the GameKit framework but does not appear to include Game Center functionality.
    we do not use the game-center feature, I am not sure how the GameKit framework reference gets added to the Mac build. I tried the following command to unlink the GameKit

    optool uninstall -c weak -p /System/Library/Frameworks/GameKit.framework/Versions/A/GameKit -t
    <executable_path>​

    It says
    Found thin header...
    removing payload from LC_LOAD_DYLIB...
    Successfully removed all entries for /System/Library/Frameworks/GameKit.framework/Versions/A/GameKit​

    But on launch app crashes with the following error

    Dyld Error Message:
    Symbol not found: _CGSizeZero
    Referenced from: /Volumes/VOLUME/*/<AppName>.app/Contents/MacOS/<AppName>
    Expected in: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    in /Volumes/VOLUME/*/<AppName>.app/Contents/MacOS/<AppName>

    Binary Images:
    0x10959a000 - 0x10a9ca27f +com.myCompany.<AppName>mac (2.24.3 - 2.4) <E38757D2-369B-320C-9BF4-E227CE1CC776> /Volumes/VOLUME/*/<AppName>.app/Contents/MacOS/<AppName>
    0x10b6a3000 - 0x10b823227 +libcrypto.dylib (0) <D43F7432-A41C-30EF-82C3-24F88A58C054> /Volumes/VOLUME/*/<AppName>.app/Contents/Frameworks/libcrypto.dylib
    0x10b89d000 - 0x10b8e0fff +libssl.dylib (0) <270A193E-3A31-3AC5-8AD4-AE77B8FDBF99> /Volumes/VOLUME/*/<AppName>.app/Contents/Frameworks/libssl.dylib
    0x10edc0000 - 0x10ee0aacf dyld (551.4) <8A72DE9C-A136-3506-AA02-4BA2B82DCAF3> /usr/lib/dyld
    0x7fff35b45000 - 0x7fff35d25ff3 com.apple.avfoundation (2.0 - 1536.36) <BB65ED51-CE44-31BD-A6EC-4B1EC5EADDD9> /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation​
     
  28. u15

    u15

    Joined:
    Apr 2, 2018
    Posts:
    2
    It looks like Unity added Adds GameKit references to the Mac project by default in the latest version of Unity 2018.2.11f1. I could see the framework references in sample project build with Unity 2018.2.11f1. Where as project built with Unity 2017.4.7.f1 does not have references to GameKit framework by default.
     
  29. GCS_Brian

    GCS_Brian

    Joined:
    Jul 7, 2018
    Posts:
    1
    I am also facing the same issue, and receiving exactly the same error (with missing CGSizeZero) when I attempt to strip the library from the app. This is a huge issue for us; I will see if we are able to ship our update with the older version of Unity that u15 suggested. But I sincerely hope this gets resolved quickly.

    EDIT: I just saw in the Issue Tracker that they are working on resolving the issue. See https://issuetracker.unity3d.com/is...-room-is-not-used-app-store-rejects-the-build
     
  30. jkampitakis

    jkampitakis

    Joined:
    Dec 27, 2015
    Posts:
    56
    We are having the same issue here, we get rejections from Apple because of that!

    Is there AT LEAST an older working unity version (NOT 2017.x) that we can build in order to remove these references?
     
  31. ugur

    ugur

    Joined:
    Jun 3, 2008
    Posts:
    681
    As info for others who may have this problem, so as workaround until UT releases an editor version with fix:

    So the optool fix attempt to remove gamekit from the build (which had worked for older versions it seems) had not worked for me and some others (as it made the build crash on launch afterwards), see posts above, what worked for me (app got through review and works fine when downloaded from app store)

    was doing this workaround: https://forum.unity.com/threads/app...reject-by-apple-reviewer.542306/#post-3577490
     
  32. sandeeprana

    sandeeprana

    Joined:
    Jan 12, 2016
    Posts:
    1
    REmove 0x and try with the part left.
     
  33. timber-ben

    timber-ben

    Joined:
    Jun 28, 2016
    Posts:
    1
    @Maxxxxxx
    hi
    Maxxxxxx , i meet the same question as you meet
    Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile:'com.apple.developer.game-center'

    i saw that you mention that include embedded.provisionprofile in bundle can help ? But i don't know how to include embedded.provisionprofile , can you tell me how to do that or some better solution to share with me?
    Tks
     
  34. i9mobile

    i9mobile

    Joined:
    Aug 8, 2013
    Posts:
    28
    Hello everyone... I'm trying to submit a il2cpp MacOS game with Unity 2018.3.14f1 and got the GameKit.framework link problem... Did something change on recent Unity versions ?

    May 16, 2019 at 1:52 PM
    From Apple
    • 2. 1 Performance: App Completeness (macOS)
    Guideline 2.1 - Performance


    Your app contains the Game Center entitlement, but it does not link against the GameKit framework.

    Next Steps

    If you would like to include Game Center, please link against the GameKit framework and submit an updated binary.

    Resources

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