Hello,
I've just updated xcode to release 4.0. A lot of the frameworks in my App are now highlighted in red, they appear to be missing. i.e. MapKit.framework
Is 4.0 not backward compatible with 3.1.3 ?
Regards, Stephen
Hello,
I've just updated xcode to release 4.0. A lot of the frameworks in my App are now highlighted in red, they appear to be missing. i.e. MapKit.framework
Is 4.0 not backward compatible with 3.1.3 ?
Regards, Stephen
If your project is working with 3.1.3 well, then do the following: 1. In XCode left pane, select your project name, right click (control click) and select "Get Info". 2. In Build tab, change the Base SDK to iPhone Device 4.0 (your latest downloaded SDK) 3. Similarly also repeat above steps after selecting "Project" menu -> Edit active target.
Then close your XCode and restart XCode. All your frameworks will be available now.
However this change (by itself) will prevent your app from loading on a 3.1.x device. That's because the new setting "iOS Deployment Target" (introduced with the 4.x SDK) will default to the same value as the Base SDK you just set. You have to change this new setting (it's in the "Deployment" group) to the earliest iOS device your app will support.
Now your app will run on any device running that version or later of iOS. But there's a new wrinkle. If you add code to your project that uses classes or methods introduced in 4.x, you'll get no warning of that in the Simulator, yet it will crash when called by your 3.x device. You have to wrap such calls with code that tests the runtime version of the device, and only make the calls if the runtime version supports those calls.
This is all discussed in detail here: http://stackoverflow.com/questions/3161385, which includes links to discussions of how best to code these runtime checks.