Objective c iMac-缺少x86版本的GameKit
如果我运行此命令:Objective c iMac-缺少x86版本的GameKit,objective-c,macos,gamekit,monomac,xamarin.mac,Objective C,Macos,Gamekit,Monomac,Xamarin.mac,如果我运行此命令: file/System/Library/Frameworks/GameKit.framework/GameKit 我得到: /System/Library/Frameworks/GameKit.framework/GameKit:Mach-O 64位 动态链接的共享库x86_64 这相当于我的iMac(全新的)缺少x86版本的GameKit。因此,我的x86Mac应用程序(它是一个C#Xamarin.Mac应用程序)在引用GameKit时崩溃 有人知道这是否会成为未来Mac的
file/System/Library/Frameworks/GameKit.framework/GameKit
我得到:
/System/Library/Frameworks/GameKit.framework/GameKit:Mach-O 64位
动态链接的共享库x86_64
这相当于我的iMac(全新的)缺少x86版本的GameKit。因此,我的x86Mac应用程序(它是一个C#Xamarin.Mac应用程序)在引用GameKit时崩溃
有人知道这是否会成为未来Mac的一个持续问题吗?或者这是我的机器上缺少的一个苹果bug?一切都指向苹果在某个时候不推荐32位(体系结构i386)代码。这是因为他们利用从32位代码切换到64位代码的优势,向Objective-C运行时添加功能,使64位运行时更具功能 我对此没有确认,但从PowerPC转换是如何处理的,以及64位代码是如何弃用古老技术的负载来看,这可能已经不远了 虽然我的机器上有32位的GameKit,但如果将来的OSX版本可能不包含32位代码,我一点也不会感到惊讶。而且,由于所有包含GameKit的Mac电脑都必须能够运行64位代码(这是山狮电脑的一项要求),我能给出的最佳建议是添加64位版本的应用程序。我不知道MonoMac是否支持64位代码,但这是您应该去的方向
我怀疑操作系统更新(如即将发布的10.8.3)可能会安装碰巧包含32位代码的GameKit版本。或者它可能会为我们其他人删除32位代码。但我绝对不会指望苹果会在32位代码中维护或添加新功能,因为他们喜欢的许多功能(如ARC或合成IVAR)在不破坏二进制兼容性的情况下无法得到所谓32位Objective-C运行时的支持。苹果开发论坛上也提出了这个问题(需要登录)@32位英特尔已被弃用。不要期望新的框架、应用程序和示例代码在32位Intel中工作。好的,我正在使用
Xamarin.Mac
,这是一个支持Xamarin的MonoMac版本。Xamarin正在修复它,所以我发布这篇文章主要是为了让他们了解为什么我的新iMac只有x64框架。他们有一个只使用x64的其他框架列表,所以我相信他们有办法修复它。