Search code examples
macososx-snow-leopard32bit-64bitfat-binaries

Proper way to make a fat binary prefer to be 32bit on 64bit OS X 10.6?


Suppose I ask the user "do you want to run in 32bit mode or 64bit mode" and they pick 32bit. How do I register this fact with the operating system? I've looked at the arch command, but I don't want to have to write a script that wraps the binary. I suspect there is a plist-y way to do this, but I can't find documentation (other than arch).


Solution

  • Try using this Info.plist key, LSArchitecturePriority:

    <key>LSArchitecturePriority</key>
    <array>
        <string>i386</string>
        <string>x86_64</string>
        <string>ppc</string>
        <string>ppc64</string>
    </array>
    

    Just don't do this by dynamically altering your program's bundle. The user running your program might not have permission to write to it. If you need to do this on a per-user basis, a wrapper script would be a preferred alternative.