我最新的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