Xcode Project Modernization

The rapid pace of change in the world of iOS development means that it is easy for old projects (which is just about anything more than about 6 months old) to get left behind. Each time a major new version of iOS is released there are SDK methods which become deprecated and project and compiler settings which if not obsolete may no longer be considered best practise.

A new feature added with Xcode 4.1 makes it easier to check a project for outdated settings and if you choose update any that are considered to be issues. If you have a project that Xcode considers is in need of modernization it will flag the issues the first time you open the project. You can use the Issue navigator to see the issues and bring up a dialog window showing the full details similar to the one below:

The issues that I have seen so far relate to projects created with an older 3.x version of Xcode and also to GCC compiler settings. In this example, Xcode offers to upgrade the project from using GCC to LLVM GCC and at the same time remove some now obsolete GCC compiler settings.

You can deselect any of the changes if you want and then have Xcode apply the changes. Xcode will offer to take a snapshot of the project before making the changes if you want though I consider that unnecessary if you are using source control.

If you decide you do not want to make the change right now you can deselect individual changes. This removes the project issue until you run the Modernize Project command again using the button at the bottom of the project settings page or from the menu (Editor > Modernize Project).