iMac - 缺少x86版本的GameKit

时间:2012-12-19 14:19:59

标签: objective-c macos gamekit monomac xamarin.mac

如果我运行此命令:

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

我明白了:

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

这相当于我的iMac(一个全新的)缺少x86版本的GameKit。所以我的x86 Mac应用程序(它是一个C#Xamarin.Mac应用程序)在引用GameKit时崩溃。

有谁知道这对未来的Mac来说是否会成为一个持续存在的问题?或者这是我的机器上缺少的Apple bug?

1 个答案:

答案 0 :(得分:2)

一切都指向Apple在某些时候弃用32位(架构i386)代码。这是因为他们利用从32位到64位代码的切换来为目标添加功能-C运行时,使64位运行时功能更强大。

我对此没有任何确认,但从PowerPC过渡的处理方式以及64位代码如何弃用大量古老技术来判断,这可能并不遥远。

虽然我的机器上有32位GameKit,但如果未来的OS X版本可能不包含32位代码,那么我一点也不会感到惊讶。由于所有包含GameKit的Mac都必须能够运行64位代码(Mountain Lion的要求),我可以提供的最佳建议是添加64位版本的应用程序。我不知道MonoMac是否支持64位代码,但这是你应该去的方向。

我怀疑操作系统更新(例如即将发布的10.8.3)可能会安装一个恰好包含32位代码的GameKit版本。或者它可能会删除我们其他人的32位代码。但我绝对不会指望Apple维护或添加新功能到32位代码,正是因为他们喜欢的许多功能(如ARC或合成ivars)不能得到所谓的32位Objective-C运行时支持,而不会破坏二进制兼容性。