Backstory
When I started my project, I had it set to use ARC because that was the greatest thing in the world.
Then I released my app and I got an email asking why the app didn't work on their computer. After a few back and forth emails and some googling, I came up with the answer:
Because I was using ARC, my app was not 32-bit compatible. Their computer had an Intel Core Duo, which meant it wasn't 64-bit compatible, thus my app didn't run on their computer.
Verify the issue
I found this terminal command to check if an app is 32 bit compatible or not...
cd to the app bundle, then into its contents, then into MacOS. Then use
file <the name of whatever is at this directory... should be the executable file>
For apps that work on both 32 bit and 64 bit machines, it returns something like this:
For apps that don't work on 32 bit machines, like mine, it returns something like this:
What I tried
So, I went into Xcode and changed both my target and project setting "Architectures" to "Standard (32/64-bit Intel)".
And... nope, it's still not 32 bit compatible.
"Valid Architectures" for both my project and target are "i386 x86_64", so I don't think that's an issue either.
So... any suggestions for what I need to check that I haven't already?
When I started my project, I had it set to use ARC because that was the greatest thing in the world.
Then I released my app and I got an email asking why the app didn't work on their computer. After a few back and forth emails and some googling, I came up with the answer:
Because I was using ARC, my app was not 32-bit compatible. Their computer had an Intel Core Duo, which meant it wasn't 64-bit compatible, thus my app didn't run on their computer.
Verify the issue
I found this terminal command to check if an app is 32 bit compatible or not...
cd to the app bundle, then into its contents, then into MacOS. Then use
file <the name of whatever is at this directory... should be the executable file>
For apps that work on both 32 bit and 64 bit machines, it returns something like this:
Code:
iCal: Mach-O universal binary with 2 architectures
iCal (for architecture x86_64): Mach-O 64-bit executable x86_64
iCal (for architecture i386): Mach-O executable i386
For apps that don't work on 32 bit machines, like mine, it returns something like this:
Code:
Battery Status: Mach-O 64-bit executable x86_64
What I tried
So, I went into Xcode and changed both my target and project setting "Architectures" to "Standard (32/64-bit Intel)".
And... nope, it's still not 32 bit compatible.
"Valid Architectures" for both my project and target are "i386 x86_64", so I don't think that's an issue either.
So... any suggestions for what I need to check that I haven't already?