Over a million developers have joined DZone.

Use Latest iOS

DZone's Guide to

Use Latest iOS

· Mobile Zone
Free Resource

Download this comprehensive Mobile Testing Reference Guide to help prioritize which mobile devices and OSs to test against, brought to you in partnership with Sauce Labs.

One of the quiet new features in the newest XCode release is a new BaseSDK option “Use Latest iOS”. Not all iOS developers will appreciate this unless they’ve been developing for at least 6 months or so.

The problem Apple has solved was an infuriating one. Since an XCode project (a target specifically) can only have one Base SDK, and since the newest SDK changes every couple months or so, we’re constantly loading up old projects (or sample code) and being met with the dreaded “Base SDK Not Found” message. ARGGGGGGGGGGG!!!!!

So, for example, say you want to run an old project to see how you implemented your camera code or something like that. You load the project, but it was running on iOS 4.0. The new XCode only has 4.1. So, no Base SDK found! You have to double-click the target (or targets), and change the Base SDK to the newest one. In fact, 99% of the time, you *always* want the newest one.

Now, as of the newest XCode, you can set the Base SDK to “Use Latest iOS” and, in theory, you’ll never have to change it again unless you have a perverse need to keep your app held back to an older SDK — in which case you are hanging on to an older XCode, too.

I say — thank you, Apple! One day, you’ll figure out how to include old SDK’s in the newest XCode builds, but in the meantime this does save me some grief! :-)

Analysts agree that a mix of emulators/simulators and real devices are necessary to optimize your mobile app testing - learn more in this white paper, brought to you in partnership with Sauce Labs.


Published at DZone with permission of John Blanco, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}