IMac - missing x86 version of GameKit

If I run this command:

file /System/Library/Frameworks/GameKit.framework/GameKit

I get:

/System/Library/Frameworks/GameKit.framework/GameKit: Mach-O 64-bit dynamically linked shared library x86_64

Which matches my iMac (brand new), there is no GameKit x86 version. So my x86 Mac app (this is C # Xamarin.Mac app) crashes when linking to GameKit.

Does anyone know if this will be a problem for future Macs? Or is it an Apple error that is missing from my machine?

+4
source share
1 answer

Everything indicates that Apple at some point refuses 32-bit code (i386 architecture). This is due to the fact that they used the transition from 32-bit to 64-bit code to add functions to Objective-C runtime, which makes the execution of the 64-bit version more functional.

I don’t have confirmation for this, but judging by how the PowerPC transition was handled and how the 64-bit code depreciates many ancient technologies, this is probably just around the corner.

Although I have a 32-bit GameKit on my machine, it won’t surprise me at all if there is no 32-bit code in a future version of OS X. And since all Macs containing GameKit should be able to run 64-bit code (a requirement for Mountain Lion), the best advice I can give is to add a 64-bit version of the application . I don’t know if MonoMac supports 64-bit code, but in the direction you should go.

I suspect that an OS update (such as the upcoming 10.8.3) might install a version of GameKit that contains 32-bit code. Or he can remove 32-bit code for the rest of us. But I would absolutely not count on Apple support or adding new functions to 32-bit code, precisely because many functions that they like (for example, ARC or synthesizing ivars) cannot be supported by the so-called 32-bit Objective-C runtime without breaking binary compatibility.

+2
source

All Articles