Use the 3.0 iPhone SDK to deploy to older versions (like 2.2.1)
I’m integrating Pinch Media’s analytics and OpenFeint’s social gaming tools into my latest iPhone app. I just nabbed r64 of the Pinch library and dropped it into my app. When I compiled, I received two odd errors:
“___restore_vfp_d8_d15_regs”, referenced from:
“___save_vfp_d8_d15_regs”, referenced from:
The [...] was a big list of objects tied to the r64 library. So, I dropped a note to the folks at Pinch and received this great reply.
- You want to build an app that will work on iPhone OS 2.2 devices.
- You’re switching Base SDK to do so
According to Apple (no link handy, but I heard this all the time at
WWDC last week), you should do the following:
- Set Base SDK (for all configurations) to iPhone Device 3.0
- Set iPhone OS Deployment Target to iPhone OS 2.2 (or whichever you
(You’ll find these settings in the Build tab if you Get Info on your
project (the top item in the Groups & Files pane in Xcode)
The issue is that they’re using a newer compiler in the 3.0 SDK, and
we’re going with their Best Practices (use 3.0 SDK, choose a
lower-version Target if you wish), and there are some features of the
compiler (which generates code that works all the way down to 2.0)
that are only available with the 3.0 release.
I’m sharing it here because it applies to pretty much any app.
** Also, if you are developing with OpenFeint make sure you grab the 6.16 release. This is the first release that will compile properly with the 3.0SDK.