I have an app that only exists a 32bit version. In order to use it, I used to press 2
& 3
together before booting the Mac, so it'll run in 32bit mode. However, some apps (64bit version that installed before) will always crash in this mode..
I happened to see a solution that run 32bit app in 64bit system:
arch -i386 theApp.app
But I tried with arch: /Applications/theApp.app isn't executable
error. I checked the file permission and it shown drwxrwxr-x
, it should be executable, uh?
EDIT: As @gd1 said, theApp.app is a folder(it's called bundle in OSX I think) and so it is not executable.
But I still need a workaround:
How can I run my 32-bit app in my 64-bit system correctly?
EDIT: I can open the app with arch
now with the command(thanks @GordonDavisson):
arch -i386 /Applications/theApp.app/Contents/MacOS/theApp
However, the app run with Components lost
error, log shown below:
Kjuly@MacBook-Pro:/Applications$ arch -i386 闪讯.app/Contents/MacOS/闪讯
2012-01-08 16:17:53.381 闪讯[472:1107] isActive: ioctl to kernel socket error 2 ,No such file or directory
2012-01-08 16:17:53.436 闪讯[472:1107] The AppPath = /Applications/闪讯.app
2012-01-08 16:17:53.437 闪讯[472:1107] The src path = /Applications/Èó™ËÆØ.app/xlpppoe.kext
2012-01-08 16:17:58.892 闪讯[472:1107] Set Driver Ok...
/tmp/xlpppoe.kext failed to load - (libkern/kext) requested architecture/executable not found; check the system/kernel logs for errors or try kextutil(8).
BTW, the 闪讯.app
(I hate it!! But I need it..) is used to connect to network in my university at China.
EDIT:
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/Contents/MacOS/闪讯
/Applications/闪讯.app/Contents/MacOS/闪讯: Mach-O executable i386
and
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe
/Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe: Mach-O object i386
It seems it's 32-bit only & depends on the 32-bit kernel. Oh, I'm sooo sad. :(
Here're some infos I got with the help from @GordonDavisson, maybe someone else need it.
The DOC shows some methods to temporarily start up with the 32-bit kernel to use older kernel extensions for the third-party software or hardware.
And it is about "Compatibility with the 64-bit kernel":
Third-party software (such as a virtualization engine) or hardware (such as a PCIe card) that relies on a kernel extension which was compatible with Mac OS X Server v10.5 may not work on Macs that use the 64-bit kernel in Mac OS X v10.6. Contact the software or hardware vendor for an updated kernel extension that works with the 64-bit kernel in Mac OS X Server v10.6.
As a workaround, you can temporarily start up with the 32-bit kernel to use older kernel extensions for your third-party software or hardware.