Statistics on Xcode users adoption rate per version - xcode

Hope that this is the right forum to ask this question. If not please help me by redirecting to the best place to ask this.
I'm looking for usage statistics of Xcode by version.
More specifically, with which versions of Xcode are new apps, or updates, compiled with.
Googling this doesn't bring anything relevant.
This is of interest to me since I am supplying a Swift compiled framework which requires a specific Swift runtime per compilation version.
Xcode 7.3.x was updated to use Swift 2.2 compiler rather than version 2.1 used in Xcode 7.2.x.
I would like to fully migrate to 2.2 , but only when there is a high enough adoption rate of Xcode 7.3.

Related

Should I start making apps with Xcode 6 or 5.1?

I was starting to make simple iPhone apps using online tutorials and books and then I realized that I upgraded to OS X Yosemite and can only download Xcode 6.1 and all the tutorials are based on Xcode 5.1. I can't learn anything with Xcode 6 since there aren't many tutorials out there for Xcode 6. Can someone please suggest me what to do? basically I'm trying to learn objective-c but before learning objective-c I'd like to make a simple app through tutorials and get the hang of Xcode and learn further..
don't worry, proceed with the current version. Any differences will be made obvious by compiler warnings or errors, at which point you can deal with them. This might be considered preferable to learning to do something in a manner which is no longer current

Xcode: Set up warning if using iOS 8 and targeting 7.1

I accidentally shipped a product that's using the new iOS 8 UIAlertController API instead of UIAlertView while targeting 7.1 users.
Is there a way to set up the compiler to warn me about using iOS 8 API on a 7.1 target?
Not directly in what ships with Xcode, but there are tools that can help you.
For example there's Deploymate (which costs $20 USD) but may be well worth the investment.
There's also the MJGFoundation/MJGAvailability.h open source header file, which solves the problem of knowing when you’re using APIs that are not available in the deployment target. It solves the problem by tricking the compiler into thinking that such APIs are deprecated. Of course, they’re not, but the compiler thinks they are and warns as necessary.
(b.t.w., I copied that last sentence from the "Identifying Backwards Compatability Issues" section of this tutorial).

Explicitly set base SDK to 3.2 to catch compiler errors

We're building an iPad app and don't plan to use any APIs that are not available in iOS 3.2. Our deployment target is already set to 3.2, but I would like to set our base SDK to 3.2 so that we get compiler warnings/errors if we accidentally invoke APIs not available in 3.2, rather than runtime failures.
Is this a good idea? If so, is the 3.2 sdk still available for download, and will older sdks work with newer XCode versions, like 4? Thanks.
There's no guarantee Xcode will support older SDK versions but as an example the current install of Xcode 4 goes all the way back to 3.0. I would drop 3.2 if I were you (few iPad users are on that; most iOS apps enforce 4.X in the App Store so I'd bet most people have upgraded) but if you are going to support it perhaps you should consider using conditional code for different OS' versions.

Do I have to compile my iPhone app with 4.2?

I have iPhone application in the App Store. Do I have to compile my app with iOS 4.2 SDK in order to allow it run on iOS 4.2 devices? Or compiling using iOS 4.2 is required only to allow using new features of new iOS?
I will appreciate if you can clarify this issue...
Thanks!
Yoash
Do I have to compile my app with iOS
4.2 SDK in order to allow it run on iOS 4.2 devices?
No, it will run on the new firmare just fine. At least if the new firmare does not reveal some bugs in your code (which happens).
You don't need to recompile it to let it run on newer OS versions, but like you already guessed, you need to recompile it when you want to use the newer features (eg. AirPlay, "Multitasking" etc).
The old version should still run.
The app might not play well with new features like multitasking on iPad, so it is worthwhile trying to get some testing and feedback done as soon as you can in case there are issues.
If you download the XCode 4 pre-release from the developer portal, you can use the new static analyser to look for problems in the code: this is not just for SDK issues but also things like memory leaks.
Apple recommends that you always compile with the latest SDK, even if you are targeting older versions.
Unless you run into a specific issue that is causing incompatibilities, it is wise to take this advice. A lot of small bugs and performance issues are fixed with each new iteration of the SDK.
That being said - you can continue to use the older SDK's, and Apple will still accept the apps you build. For mature apps that are only going through minor tweaks, this is probably the safest course to avoid introducing new bugs.

Debug for iOS 3.x in xcode with SDK 4.1

I've downloaded the latest SDK from developer.apple.com and can only pick 3.2 or 4.1 from Project > Properties > Base SDK.
My iPhone is 4.1
My client have iPhone 3.x
You feel the problem...
How can I debug for iOS 3.x in xcode with the 4.1 SDK installed?
Actually that's a very frequent question (was lazy, only linked one).
Short version: you need to set your Base SDK to the highest SDK version you've got and your project's Deployment Target to the lowest version you like to support, e.g. 3.0. This means, the Deployment Target specifies the oldest version your app should be able to run on. But beware, this setting does not prevent you from accidentially calling, say, methods available since 4.0 on an 3.0 iPhone and thus causing a method missing exception.
This isn't possible have I come to understand.
You have to buy a old iPhone 3.x.
If you want my opinion on this, then I think this is horrible, frustrating and completely not understandable.

Resources