Why some App Store apps won’t install

App Store IconI was happily playing around with the appstore, and came across this funny free game called “Hedgewars”. Originally a free Linux game, it apparently got ported to the Mac and put in the App Store, just as a slew of Flash-based games (yes, Steve has some ‘splainin’ to do).

I tried to install Hedgewars on my trusty Mac Mini and got this message saying “This Application can not be installed on this machine”:

There was no additional information on what was causing this. So the first thing I did was check out my computer information and the requirements for running this game, which seemed to check out fine:

I was running the correct version of OSX, so what was the problem here? My neighbor came over and I showed him this funny problem. He found out that Hedgewars could be downloaded from the developers site, and so we did. After opening the DMG, we were greeted with the funny Application Icon decoration show on the right:

Usually this means that the application is compiled for a different system than you’re trying to run it on. This can happen when you have an older generation PowerPC processor and try to run a non-universal-binary Intel application. So we checked the properties on the application, and it looked like OSX had it wrong. It’s an Intel app, and we’re running an Intel Mac. So what gives?

The next step was to open the Terminal so we could dissect this app on the command line, showing it’s inner guts. Apps have all kinds of interesting XML and plist files telling the operating system what to do and how to start it up. Here’s what we found:

rolf@Mac-mini$ cd Hedgewars.app/Contents/MacOS/
rolf@Mac-mini$ ls -l
total 21344
-rwxr-xr-x  1 rolf  admin  2627208 27 dec 21:39 hedgewars
-rwxr-xr-x@ 1 rolf  admin  5913164 27 dec 21:37 hedgewars-server
-rwxr-xr-x@ 1 rolf  admin  2381240 27 dec 21:37 hwengine

rolf@Mac-mini$ file *
hedgewars:        Mach-O 64-bit executable x86_64
hedgewars-server: Mach-O executable i386
hwengine:         Mach-O universal binary with 1 architecture
hwengine (for architecture x86_64):     Mach-O 64-bit executable x86_64

The Hedgewars package has 3 executables, one 64-bit x86, one i386, and one universal binary which only contains an executable for 64-bit x86. We guess the developers made a bit of a mess of this. As expected, we could start the i386 executable just fine:

rolf@Mac-mini$ ./hedgewars-server
Listening on port 46631

But the x86_64 executable and the universal binary would not start:

rolf@Mac-mini$ ./hedgewars
-bash: ./hedgewars: Bad CPU type in executable

rolf@Mac-mini$ ./hwengine
-bash: ./hwengine: Bad CPU type in executable

Because this Mac Mini runs a Core Duo, we figured the x86 was okay, but we weren’t sure about the 64-bit architecture. A quick peek at Wikipedia confirmed our suspicion: The Intel Core Duo is not a 64 bit processor. In fact, 64-bit is the major difference between “Core Duo” and “Core 2 Duo”. Additional “Googling” showes that Apple Support knows that, too.

So there you have it. The Mac App Store does not tell you what the problem really is, but chances are that if you get the “Could not install this Application on this machine” error, you have 32-bit architecture (the Core Duo) and the developer compiled the application for 64-bit architecture (the Core 2 Duo).

Why in god’s name hedgewars has to be a 64-bit application beats me, but that’s something I’m not going to change I’m afraid. It turns out that this as been reported as a bug to the Hedgewars team, which hasn’t been picked up yet.

The good news for older model Intel Mac Mini Core Duo owners out there: You can replace your CPU with a Core 2 Duo processor. You’ll need one of these:

– Core 2 Duo T7200 (2.00Ghz)
– Core 2 Duo T7400 (2.16Ghz)
– Core 2 Duo T7600 (2.33Ghz).

The processors are quite pricey, our quick check showed that they’re all above the $200 price mark, which may be a bit steep for a processor upgrade. We expected about half that, so that was a bummer. Should you want to upgrade your CPU, buy thermal paste, and follow a good howto. To get a feeling of what you’re getting into, check out the iFixit teardown of the Mac Mini.

The other option would be to trade in your Core Duo Mac Mini for a Core 2 Duo Mac mini. It’s safer and probably about as costly as buying one of the strangely priced Core 2 Duo processors.


2 Responses to Why some App Store apps won’t install

  1. JeffK says:

    Where does the app store put the installer for something like, let’s say, iPhoto ’11?

    If i needed to reinstall it, how could I do that?

    Thanks, Jeff

  2. rolfje says:

    Hi Jeff, as far as I know, there is no such thing as an “Installer”. The App Store puts the iPhoto.app in your Applications folder.

    For re-installing the app, you need to remove not only the iPhoto.app, but also possibly some directories from your home directory and Library.

    I’m not sure which, you may want to contact Apple Support or check out Apple’s support forums.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s