Lion + Xcode 4.2 + Unity 3.4 + iPhone 3G = Disaster?

Or: How to make a universal build that also runs on iPhone 3G or 2nd gen iPod Touch with Unity 3.4.2 and Xcode 4.2 on Lion. No easy task, but with a little help from all over the web, I figured it out…

Step 1 – Unity:

In the Player Settings, choose SDK Version 4.3 (Yes, Xcode 4.2 comes with iOS SDK 5, but don’t set this to iOS latest or you’ll get a bunch of errors when building…)
Target iOS Version: 3.1.3 (Choosing something lower doesn’t work thanks to a bug in Unity)
Target Platform: Universal (more about this later…)
Target Device: iPhone + iPad (just because I want it to run on both) – not sure these matter, as XCode seems to ignore them…

Build and open it in Xcode

Step 2 – XCode:

• Set the Base SDK of the project and the target to iOS 5.0
• On the target, set the Targeted Device Family to iPhone/iPad
• Still on the target, set the iOS Deployment Target to 3.1.2 (Notice: That’s below 3.1.3! I use this just because it’s the version my 2nd generation iPod Touch is running)

And now for the part that actually makes it run on old armv6 devices:
• Both in the project and on the target, look for Architectures, click on $(ARCHS_STANDARD_32_BIT) and choose Other… from the popup. Hit the plus and add armv6. (More info on here on stackoverflow)

• Select Unity-iPhone > Your Device from the top and Build+Run!

Bookmark the permalink. Follow any comments here with the RSS feed for this post. Trackbacks are closed, but you can post a comment.

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>