Sunday, February 26, 2012

Compiling ScummVM for iOS (iPhone/iPad) with Xcode

It's a shame that there is no official release of the excellent ScummVM engine available at the AppStore. Although there is an official port of the ScummVM for Apple's iOS platform available for download, this makes only the ones with a jail brake happy.

I'm very happy with my un-jailbroken iPhone/iPad combination and have no plans for jailbraking. The main reason for this decision is, that I'm just too lazy for rejailbraking my devices after every OS update.

So for all non-jailbrakers the only chance to get ScummVM on you device is to build it yourself, sign it with an official developer certificate (only available from Apple) and sync it to your device manually.

There's a short explanation how to compile in the wiki.

Getting the source from ScummVM is no problem at all.

Just open the command line and enter
git clone https://github.com/scummvm/scummvm scummvm
This gets you a fresh copy directly out of the developer branch. You'll find the Xcode project files at /dists/iphone. You can get the needed external libraries from here. Just extract them to /dists/iphone

Unfortunately the Xcode project is (intentionally) outdated and doesn't build.

All my efforts to get it up and running led to nowhere. Well, this is just my fault. Missing experience with Xcode, you know.

Fortunately someone else managed to build a working Xcode project. So here is how I got a fresh ScummVM build for my iOS devices:

Get the fork with the working Xcode project from github by entering:
git clone https://github.com/phoenixtail26/scummvm scummvm
Select the correct branch (this may vary) by entering:
git checkout remotes/origin/aspectRatio
Now open /dists/iphone/scummvm.xcodeproj and build (Cmd-B) the binary.

Attention! Get the result out of /tmp/scumm-dst. There should be a ScummVM.app.
Use Xcode Organizer (Shift-Cmd-2) to install ScummVM.app to your device. Copy compatible games to the Documents directory with XCode Organizer or use iExplorer and experience ScummVM on your iOS device.


If you're too lazy to compile it yourself, download ScummVM 1.5git as an IPA here.

To install you need to resign it with a valid code signing certificate. You can easily resign the package with iModResign.

8 comments:

  1. Thanks, worked great. Had to add the missing libs though as described here: http://wiki.scummvm.org/index.php/Compiling_ScummVM/iPhone

    Quote: "Download http://worldsmainorganization.org/scummvm/?dir=&download=scummvm-iphone-libs.tar.gz and extract it to the dists/iphone folder."

    ReplyDelete
  2. I've tried to recompile following your instructions, but this led me to some compile errors related to my 64bit osx i think (on some sound libraries: FLAC, etc...).
    In the end I downloaded the precompiled ipa, resigned it with IModSign, and NOW I'M PLAYING WITH MONKEY ISLAND :)

    Thanks!

    ReplyDelete
    Replies
    1. Could you send me the resigned ipa? I am to stupid to resign it. :D

      Delete
  3. Great tutorial!

    I've been trying to compile it myself with xCode 3.2.6 running a 64bit MacOSX 10.6.8. Unfortunately, compiling results in an error due to some missing FLAC libs (I guess). This is the last part of the compiling log:

    Using built-in specs.
    ...
    ld: warning: directory '/Users/USERNAME/Desktop/scummvm/dists/iphone/lib' following -L not found
    ld: library not found for -lFLAC
    collect2: ld returned 1 exit status
    Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2 failed with exit code 1

    Does anybody know how to add those missing libs or how to fix this in order to make a clean build?

    Any help is appreciated ...

    ReplyDelete
    Replies
    1. Hi there and thanks for your feedback!

      As already written in the post, you can get the needed external libraries from http://worldsmainorganization.org/scummvm/?dir=&download=scummvm-iphone-libs.tar.gz. Just extract them to /dists/iphone and try the compilation.

      I'm not sure if this works with the old Xcode. Maybe you wanna post your results here!

      Kind regards, mn

      Delete
  4. I'm sorry to interrupt the ones who actually know what they're doing.

    I'm not a programmer and am having difficulty. I downloaded the files. When I use the imod it doesn't even see the file I downloaded (already compiled) and when I click on the already compiled it opens itunes... and that's it. It's nowhere to be found.

    is there a step by step on how to install and use the downloaded and compiled one?

    Thanks.

    -j

    ReplyDelete
  5. ok, I think I might have figured it out.

    Didn't realize I needed to pay 99 dollars to apple to be a developer to create certificates to use imod. Not worth it. That's a complete scam. They should charge you once you post your apps.

    ReplyDelete