Building for Xcode Simulator

With these extensions:
https://github.com/GameAnalytics/defold-openssl/archive/master.zip
https://github.com/defold/extension-facebook/archive/2.6.0.zip
https://github.com/britzl/gooey/archive/8.1.0.zip
https://github.com/defold/extension-iap/archive/2.0.1.zip
https://github.com/AGulev/DefVideoAds/archive/3.5.0.zip
https://github.com/selimanac/defold-random/archive/v1.2.1.zip
https://github.com/britzl/monarch/archive/3.2.1.zip
https://github.com/britzl/defold-orthographic/archive/2.11.0.zip
https://github.com/AGulev/defreview/archive/master.zip
https://github.com/AGulev/set_screen_position/archive/master.zip
https://github.com/defold/extension-gpgs/archive/1.3.3.zip
https://github.com/animonger/extension-gamekit/archive/master.zip
https://github.com/britzl/defold-richtext/archive/5.16.0.zip
https://github.com/subsoap/defblend/archive/master.zip
https://github.com/subsoap/chrono/archive/master.zip
https://github.com/defold/extension-firebase-analytics/archive/1.3.2.zip
https://github.com/GameAnalytics/GA-SDK-DEFOLD/archive/3.3.4.zip

And these settings:

I get this build error:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_GKAchievementDescription", referenced from:
      objc-class-ref in libGameKit_9.a(GetCommands.mm_11.o)
  "_OBJC_CLASS_$_GKLeaderboardSet", referenced from:
      objc-class-ref in libGameKit_9.a(GetCommands.mm_11.o)
  "_OBJC_CLASS_$_GKAchievement", referenced from:
      objc-class-ref in libGameKit_9.a(SendCommands.mm_16.o)
      objc-class-ref in libGameKit_9.a(GetCommands.mm_11.o)
  "_OBJC_CLASS_$_GKGameCenterViewController", referenced from:
      objc-class-ref in libGameKit_9.a(ShowCommands.mm_17.o)
  "_OBJC_CLASS_$_GKScore", referenced from:
      objc-class-ref in libGameKit_9.a(SendCommands.mm_16.o)
  "_OBJC_CLASS_$_GKLeaderboard", referenced from:
      objc-class-ref in libGameKit_9.a(GetCommands.mm_11.o)
  "_OBJC_CLASS_$_GKPlayer", referenced from:
      objc-class-ref in libGameKit_9.a(RealTimeCommands.mm_15.o)
  "_OBJC_CLASS_$_GKLocalPlayer", referenced from:
      objc-class-ref in libGameKit_9.a(RealTimeCommands.mm_15.o)
      objc-class-ref in libGameKit_9.a(SendCommands.mm_16.o)
      objc-class-ref in libGameKit_9.a(GetCommands.mm_11.o)
      objc-class-ref in libGameKit_9.a(GameKit.mm_10.o)
  "_OBJC_CLASS_$_GKMatchRequest", referenced from:
      objc-class-ref in libGameKit_9.a(RealTimeCommands.mm_15.o)
  "_OBJC_CLASS_$_GKMatchmakerViewController", referenced from:
      objc-class-ref in libGameKit_9.a(RealTimeCommands.mm_15.o)

ld: symbol(s) not found for architecture x86_64

clang-10: error: linker command failed with exit code 1 (use -v to see invocation)

Am I doing something wrong?

I have also tried ticking the 32-bit architecture with the same error.

Not sure what’s missing.
Since the missing symbols are related to GameKit, I’d start looking there.
Checking the extension manifest of extension-gamekit, it doesn’t seem to support x86_64-ios. Perhaps you can make a pull request to update that extension?

Note to future users: When posting the list of dependencies, we prefer it if you post it as text. Both for searchability, but also it’s a lot easier for us to copy paste into an empty project, to look for issues or to try to reproduce the issue.

Of course! https://github.com/animonger/extension-gamekit/issues/1

Makes sense! Will stick to text from now on.

1 Like

Adding an issue is fine, but I’m not sure how often that user is checking those issues, or has time to fix it.

My suggestion was (is) that you try to create the code change yourself, and create a Pull Request back to that repo. (Or ask someone else to do it)

Other native game services, like Google Play or Facebook Instant, are supported by the Defold team. Is there a reason why iOS is not supported in the same way?

The bottom line constraining factor is time (i.e. money), I would say.
We developed the native extensions for our users to both help ourselves, as well as let our users not be blocked by missing native features.

Where to draw the line before making it an “officially supported extension/library” will not always be 100% clear, but we’ll happy to take the discussion. And as always, after being added to the backlog of issues, it will be prioritized against the rest of the backlog.

1 Like

Money is definitely one factor. But time is another limiting factor. We can’t create all of them at the same time (or well, we could obviously hire a hundred developers and have them work on one extension each, but that isn’t really realistic).

There has to be some order in which we create them. For mobile we decided to focus on Android as we received more requests for official support for Google Play Game Services than we did for GameCenter. And once a community member created a GameCenter extension the need for an official version was not as great.

1 Like

Oh, please also take note of this recently encountered iOS simulator issue: https://github.com/defold/defold/issues/5282

1 Like

Just to unblock you, I created my own (personal) fork of the gamekit extension here, which you can use in the meantime:

I’ve created a Pull Request to the main repo, and hoping @animonger will accept it soon.

1 Like

Amazing! Thanks so much.

And, the fix is merged into the main repo, so you should probably switch back to it: https://github.com/animonger/extension-gamekit

2 Likes