Now that Swift 2.2 / iOS 9.3 / watchOS 2.2 is out, can I update an app using Xcode 7.3 and still work on a iOS 9.2 device?
For example, if I started using #selector(someFunc) instead of selector("someFunc"), will this crash on a iOS 9.2 device?
iOS SDK is maintained to be backward-compatible (though I don't know, how far back). You can take a look at page SDK Compatibility Guide, Base SDK and Deployment Target Settings to read about "Base SDK" and "Deployment Target" project settings.
The latest language version (either Swift or Objective-C) can also be used with older iOS versions, because, no matter what the language is, the compiler will generate effectively the same machine-code at the end. There could be nuances like lack of some OS features (e.g. ARC is fully supported starting from iOS 5, though it's pretty much compiler/language feature).
It may be also interesting to read Xcode 7.3 Release Notes to get the list of new features and changes. This document does not states that some older iOS versions are no more supported.
What would be the current way of creating a small Carbon app in Xcode 4?
I.e. we've got a bunch of small, window-less helper apps that just need building from a small number of C++ source code files but the 'old' Xcode Carbon templates seem to have vanished in Xcode 4.6
Any hints appreciated!
I think the last version of Xcode to have Carbon templates was 2.5, and I don't know if that will run on recent OS versions.
If these apps don't have UI, why do they need to be Carbon? Maybe they could even be command line tools?
Can I build Qt 4.8.x on OSX 10.7.x using XCode 4.6.x and deploy the application on osx 10.6.x 10.7.x 10.8.x i.e. on Snow Leopard, Lion and Mountain Lion?
I am trying since several days but no result I even tried to explicitly specify -sdk ..10.6.sdk after giving aias Developer/Sdk/... But having very tough time.
Webkit complains it cannot find symbol " _kCFWebServicesProviderDefaultDisplayNameKey" that is referenced from QtWebKit.
I see on Qt's bug site that few people says they were able to do it by using sdk 10.6.sdk using lower xcode, but I dont understand why I do need to use 10.6 ?
Technically the SDK shouldn't matter, as long as "-mmacosx-version-min=10.6" is set as deployment target.
I'm developing an app which is iOS 4 compatible, so my deployment target is set to iOS 4.0.
Whenever I drop a UINavigationController onto a UITabBar, I get these two warnings:
warning: Attribute Unavailable: Defines Presentation Context is not available prior to Xcode 4.2.
warning: Attribute Unavailable: Defines Presentation Context on iOS versions prior to 5.0.
The UINavigationController functions as expected, in fact, the entire app runs perfectly. But these two warnings are driving me nuts!
Also, the moment I delete the UINavigationController the warnings disappear.
Just uncheck the "Defines Context" checkbox in the attributes inspector. (Double-click on MainWindow.xib, select the navigation controller, then go to View->Utilities->Attributes Inspector.) That'll get rid of the warnings.
You are getting these warnings because you are using iOS 5.0 SDK features with a 4.x deployment target.
All, if not, most of the new 5.0 hotness, including ARC and Storyboards, is completely backwards compatible with iOS 4.x (I don't remember if 4.0 or 4.3 is the lowest supported version, check the docs), it will work as intended, but Xcode is going to warn you anyways.
You should be able to disable that warning if it really bothers you, but I wouldn't. That said, Apple does not currently accept applications built/archived with the Xcode 4.2 beta for submission to the App Store. This means you need to use Xcode 4.0/4.1 in a production environment.
Before we go any further, you should know that Xcode 4.2/iOS 5 is beta software, it is under NDA (you agreed to this when you joined the Apple developer program) and cannot be discussed in the public domain. This means you won't be able get much help from places in the public eye, like StackOverflow, as good as it can be. But, since I'm here and this is a very high level question, I can help :)
In the future, if you have iOS beta questions or issues, you should hit up the Apple Developer Beta Forums (an excellent resource, always search before you post), or #iphonedev on irc.freenode.net for not-beta stuff (I'll be there, say hi!)
If you're developing an application for release on the App Store:
You need to be developing with Xcode 4.0 or 4.1, Apple will not accept applications built/archived with 4.2. (I know I repeated myself, but people seem to miss this often)
And, although 4.2b7 supports developing for older frameworks better than previous Xcode betas have (by allowing you to install previous versions of the simulator), you will still find yourself accidentally using 5.0 SDK functions all over the place, as the code completion/interface builder very aggressively favors all of the new hotness. This is because the beta is for trying new things, not stable application development.
This means you need to switch back to using Xcode 4.0/4.1 for production, if you don't have it installed, or you overwrote the stable version with the beta, do not try to install 4.0/4.1 on top of the 4.2 beta, weird things will happen and both versions will start acting really weird and and Xcode will crash at least twice as often.
The best thing to do in this situation, is to follow the below steps. Make sure you don't skip anything, otherwise you'll have to restart the whole process.
Make sure you have your code committed and pushed up,
uninstalling Xcode like this temporarily removes git. (This was an
issue for me at work once)
Download the installers for Xcode 4.0/.1, and 4.2 if you intend to keep experimenting. (if you already
have both downloaded, this whole process won't take more than 5
minutes on an SSD)
Uninstall the Xcode beta from the command line using this command:
sudo <Xcode>/Library/uninstall-devtools --mode=all (more info here)
Restart your computer (this is important, do not skip it!!!)
Install the most recent non-beta version of Xcode and resume development.
If you want to use both versions of Xcode (4.0/4.1 and 4.2):
You must install the beta AFTER 4.0/4.1 is installed, otherwise you will be overwriting new things with old things, and this will give you many, many obscure headaches. I also recommend restarting between installations.
You need to install 4.2 after 4.0/4.1, and to a different folder (I use /Xcode4beta/, don't put it within the folder that contains 4.0/4.1, either). I've found I learn about the new hotness best if I keep separate iOS5 branches of my work, and update what I can when I have some free time.
If you have the iOS5 beta installed on your phone, and Xcode 4.0/4.1 won't let you build to your phone:
This is because Xcode needs to grab the debug symbols from the phone before it can be used for devleopment, but only the Xcode beta can do this for an iOS5 beta device, so follow these steps:
Make sure your phone is plugged in and turned on, and that your provisioning profile/certificates all check out.
Close the project in Xcode 4.0/4.1.
Open the project back up in Xcode 4.2, and check organizer. You should either already have a green dot next to your phone (assuming all of your provisioning is working), or it should be gathering the debug symbols. Let this finish, and then build your project. It doesn't need to be a successful build, nor do you have to install the application to the phone, sometimes you don't even need to build, Xcode can be a fickle mistress.
Close the project in Xcode 4.2.
Open the project back up in Xcode 4.0, you should now be able to build and install to your phone as you normally would.
Xcode 4.0/4.1 should now be able to use your device for development until you restart the computer.
Resolution is here:
How can I fix "Freeform Size simulated metrics are not available prior to Xcode 4.2" warnings?
You just need to change the development version of your xib file to Xcode 4.2 (default is Xcode 4.1)
View Controller and Navigation Controller setting or options name ( attributes inspector )
Define Context ( Checked ) unchecked.
I've been searching for this info with no luck. I'm using SDK1 with 4.7.0. Works fine but has some issues with Postres so I need to update. The thing is...
I go to download RC SDK1.1 and I see windows version is 1.5GB!!
The Linux version is about 700MB.
Why is Win version more than double?
SDK1 was about 320MB for windows and 400MB+ for Linux.
So Windows version was relatively smaller than Linux version considerably and sdk1 was drastically smaller than sdk1.1. I hear that 1.5GB unpacks to 5GB.
Of course, if you download the framework and creator separately than it is normal size (roughly equivalent to SDK1). This just adds to confusion. Isn't the SDK == Framework + creator ?
Something is wrong here... Any ideas what is going on? Should I wait till full release version?
I think thats because only Windows supports development for Symbian platform using Symbian SDK that can be installed (other platforms use remote compiler). Nokia with Qt SDK 1.1 announcement mentioned that they refactored Symbian toolchains so now you can use Symbian ^ 1 and Symbian ^ 3 native APIs. I think that what made the installer so huge. On the web site I noticed they have web installer, so I'd recommend to download the web installer which is just 15Mb and I suppose it should be a wizzard page that allows you to select which parts to install. Just don't install Symbian native SDK or anything else you don't need.
Hope that helps