Search Issue Tracker

Fixed in 2019.1.X

Fixed in 2018.3.X

Votes

15

Found in

2018.2.1f1

Issue ID

1065311

Regression

No

[macOS] GameKit reference in the application when Game Center is not used, App Store rejects the build

MacOS

-

Reproduction steps:
1. Open the attached project.
2. Build it as macOS Standalone.
3. Navigate to the "AppName.app" location using Terminal.
4. Input this command (Don't forget to rename the 'AppName' ):
grep -r -i -c "gamekit" "AppName.app"
5. Check the output:

Actual behavior:
- There will be more than 0 references (More than 0 'example:1').

Expected behavior:
- 0 references (Every line says 'example:0').

Reproduced with:
macOS Standalone, iOS
2018.2.0b1, 2018.2.13f1, 2018.3.0b6, 2019.1.0a4

Comments (251)

  1. ugur

    Dec 09, 2018 20:13

    to all who have this issue, too: so the optool fix did not work for me (lead to the app not launching anymore afterwards), what worked for me (app passed review fine) was this workaround:
    https://forum.unity.com/threads/app-links-against-the-gamekit-framework-reject-by-apple-reviewer.542306/#post-3577490

  2. ugur

    Dec 09, 2018 20:13

    to all who have this issue, too: so the optool fix did not work for me (lead to the app not launching anymore afterwards), what worked for me (app passed review fine) was this workaround:
    https://forum.unity.com/threads/app-links-against-the-gamekit-framework-reject-by-apple-reviewer.542306/#post-3577490

  3. Oscar-Tsang

    Dec 09, 2018 09:21

    Fixed in Unity 2019.1?

    Unity 2018.3 still haven't release yet! DO you mean unity 2018 is useless on macOS?

  4. ugur

    Dec 07, 2018 21:07

    @VAIDAS_BUDRYS: when i try to strip gamekit using optool as you said, afterwards the app crashes on launch attempt with error
    Symbol not found: _CGSizeZero

  5. Vaidas_Budrys

    Dec 03, 2018 08:47

    I'd say at least a couple of weeks until it gets to public beta. In the meantime, "optool" can be used to strip the GameKit reference:
    https://github.com/alexzielenski/optool - sample commands:
    optool uninstall -c weak -p /System/Library/Frameworks/GameKit.framework/Versions/A/GameKit -t YourApp.app/Contents/MacOS/YourAppExecutable

  6. GCS_Brian

    Nov 28, 2018 17:56

    That's wonderful to hear, Vaidas. Any rough ETA?

  7. Vaidas_Budrys

    Nov 28, 2018 11:27

    I've got a fix for this on the way.

  8. GCS_Brian

    Nov 21, 2018 01:39

    I am still investigating, but I believe we are also experiencing this issue on OSX. I believe the gamekit is being included via UnityEngine.SocialPlatforms. We are using Unity version 2018.2.7f1.

    >grep -r -i -c "SocialPlatforms" in our .app directory brought up

    ./Contents/Resources/Data/Managed/UnityEngine.GameCenterModule.dll:1
    ./Contents/Resources/Data/Managed/UnityEngine.dll:1
    ./Contents/MacOS/DevApp:3 (this is our executable)

    Additionally, our otool output includes several references to GameCenter and its functions.

    000000010147b008 0x101486668 _OBJC_CLASS_$_AchievementWrapper
    isa 0x101486690 _OBJC_METACLASS_$_AchievementWrapper
    superclass 0x0 _OBJC_CLASS_$_NSViewController
    cache 0x0 __objc_empty_cache
    vtable 0x0
    data 0x101480240 (struct class_ro_t *)
    flags 0x194 RO_HAS_CXX_STRUCTORS
    instanceStart 104
    instanceSize 112
    reserved 0x0
    ivarLayout 0x1013aca90
    layout map: 0x01
    name 0x1013acc86 AchievementWrapper
    baseMethods 0x101480180 (struct method_list_t *)
    entsize 24
    count 3
    name 0x1013ab4d8 showAchievementsUI
    types 0x1013ad346 v16@0:8
    imp 0x100c298f0 -[AchievementWrapper showAchievementsUI]
    name 0x1013ab4b5 gameCenterViewControllerDidFinish:
    types 0x1013acfc9 v24@0:8@16
    imp 0x100c29a60 -[AchievementWrapper gameCenterViewControllerDidFinish:]
    name 0x1013a79c7 .cxx_destruct
    types 0x1013ad346 v16@0:8
    imp 0x100c29a80 -[AchievementWrapper .cxx_destruct]
    baseProtocols 0x101480120
    count 1
    list[0] 0x10149a930 (struct protocol_t *)
    isa 0x0
    name 0x1013acc99 GKGameCenterControllerDelegate
    protocols 0x1014800e0
    instanceMethods 0x1014800f8 (struct method_list_t *)
    entsize 24
    count 1
    name 0x1013ab4b5 gameCenterViewControllerDidFinish:
    types 0x1013acfc9 v24@0:8@16
    imp 0x0

    If you have any additional information regarding how to get around this, we'd love to hear it. Apple has rejected our latest build due to this (it may have been happening earlier, but they missed it or let it slide, perhaps?)

  9. Oscar-Tsang

    Nov 16, 2018 00:00

    Unity need to face it is a very important. If app (macOS version) do not accept by Apple. The OSX build is meaningless.

    Up to now they still to not have planning to fix this problem. Just reply me it is noted.

  10. Nananaaa

    Nov 14, 2018 10:51

    Correction to my previous comment:
    Only the Mac OSX build got rejected because it links against GameKit without using it.
    The iOS rejection had a different reason.
    Sorry for that.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.