我最新的Mac应用程序从Mac App Store中被拒绝。可可32位和64位二进制文件内应用程序
基本上它没有工作,因为应用程序中包含一个自包含的unix可执行文件。 我之前在应用程序中包含了一个二进制文件,该应用程序位于Mac App Store中,但这个unix二进制文件给我带来麻烦。
我已经在i386机器上编译了这个二进制文件的2个不同版本,而在x86_64机器上编译了这个二进制文件。 使用 “文件APPNAME”,我得到了64位二进制
Mach-O的64位可执行文件x86_64的
和32位二进制
的Mach-O可执行i386的
在运行时,我尝试执行正确的二进制文件,但我注意到似乎并不重要?我使用哪个二进制文件,我可以在i386机器上执行x86_64,并且工作正常。
我的应用程序构建设置是默认项目(标准32/64位英特尔)随附的内容。
问题是我应该试图运行32位二进制文件,当我的应用程序在i386机器上运行?
为什么我的x86_64二进制文件在i386机器上运行时工作?
谢谢,约翰。
你怎么知道'i386机器'只是i386?另外,为什么不是通用构建? – 2011-04-19 07:45:04
我使用“uname -a”检查了i386机器,它说i386,但我不知道它可以运行其他架构? – 2011-04-19 07:50:06
IIRC uname可以告诉内核体系结构,而支持64位的机器可以启动32位内核,但在一些可支持64位的Core 2 Duo机器中这是必需的,但EFI却不支持。运行'sysctl hw.cpu64bit_capable' - 如果机器具有64位功能,则显示1,否则显示0。 – 2011-04-19 07:53:24