On 17 Apr 2012, at 4:37 PM, G S wrote: What is the point of setting the deployment target, if there's no feedback that results from it?
What indeed. What you're looking for would be delivered if you set the SDK to iOS 4.3. The SDK is "the maximum features you're going to use." If you accidentally wrote iOS 5 code, the compiler would warn/error because the API you stumbled into doesn't exist.
However, Apple does not want to expend the considerable effort that would go into qualifying its latest tools against its earlier SDKs. So the SDKs Xcode supports go back only one minor version. Apple doesn't much acknowledge the burden of qualification, which would be a fairly good excuse. Instead we are asked to take comfort in that the APIs are all backward-compatible, so there is nothing to worry about. Unless you don't want to wait until your app is in the App Store to find out that you've missed some API. So that's not as good an excuse.
What you did set was the deployment target, "the minimum version you're going to run on." The resulting binary will run on the OS you target. You can still use the features of a later SDK, but what's in the SDK-minus-target is "weak linked:" The symbols aren't required to exist for your app to load, you can test whether they are available, and you won't crash unless you actually use a symbol that's not available at run time.
Setting the deployment target just gets you deployment. It doesn't get you any warnings.
— F
|