Running Xcode 9 and Xcode 10 Side-by-side


đź’ˇSee also an updated post for running Xcode 11 and Xcode 10 Side-by-side!


With the recent release of Xcode 10, it’s easy to get excited and upgrade (or have your Mac auto-upgrade for you) and end up in a situation where you can’t support some of your older apps.

It might be that you’re not ready to move to Titanium 7.4.0.GA yet, but still have to maintain a codebase and in these situations, updating to the latest major Xcode version can stop older apps working.

Luckily, there’s an easy way to have the both Xcode 9 and 10 running side-by-side on the same machine and build for both iOS 11.4 and 12 whenever you like.

Firstly, (and to show you what’s happening here) go to your Titanium application project folder in Terminal, and type appc run -p ios --ios-version 1 — you’re told (correctly) that “1” is invalid and asked to select an SDK version — if you have Xcode 9 installed, you’ll see 11.4 and with Xcode 10, you’ll see 12.

Let’s get another Xcode installed, and we’ll come back to this.

If your computer has already updated to Xcode 10, don’t worry — go to, login and visit the download sections — you’ll need to go to the “more downloads”. And, within that, you’ll find the latest version of Xcode 9. Download that to your machine and extract it.

Next, rename the file to Xcode9 and move it into your Applications folder. You should now have two files — Xcode 10 and Xcode 9.

If you haven’t downloaded Xcode 10 yet, you can repeat the above steps and just download Xcode 10 instead. Then, rename the currently installed version to “Xcode9”, and move the Xcode 10 file to the Applications folder.

Either way, you should end up with a file called Xcode and another called Xcode9.

Next, make sure you launch whichever additional Xcode you downloaded, so it can install its additional components — this is important or you won’t be able to build with it.

Once you’re finished letting Xcode do it’s thing, go back to that Terminal window you had open earlier and run that same command again:

appc run -p ios --ios-version 1

You’ll notice you now have two options: 11.4 and 12. That’s because Titanium is detecting both Xcode installations and knows how to route the build to each based on the flag —ios-version. There’s no need to use xcode-select to change versions or do anything else.

So, if your application is in a previous version to 7.4.0.GA, all you have to do is specify the —ios-version 11.4 in the CLI and it’ll build with Xcode9. If your application uses 7.4.0.GA, then use —ios-version 12 and it’ll build with Xcode 10!

If you’re a Studio user, it’s just as easy — once you’ve installed Xcode 9 and 10 side-by-side and launched Studio, it’ll detect the changes — and you can simply select from the menu > iOS and the version you want to build with.

The end result is you can build new apps with the new Xcode and latest Titanium SDK whilst still supporting and maintaining old applications.

I hope this was useful to you — please leave a comment below and maybe tell us what you think of Xcode 10, are you already using both, and how are you finding updating your apps to the latest version of iOS and Titanium?

Happy Coding!

Previous articleForget about “Divide to conquer,” think “consolidate to control!”
Next articleIron Lady in the Axway house!
Developer Evangelist at Axway • Freelance cross-platform developer • Speaker/Author • host of The Checked Shirt and Titanium Talk podcasts • Mencap ambassador • Regular on BBC Wiltshire Radio, Monday nights at 9.15pm talking apps • Dad of 5, Rosie with T21


  1. the appc run command above is wrong. It should be either be “-p ios” or “–platforms ios” not -P as shown

    When I walked through these steps, it detected both 11.4 and 12 as stated but the build command still failed with “Unable to find any Xcode installations that supports iOS Simulator 11.4.” until I ran “xcode-select -s /Applications/” then it worked fine.

    This is with a build that had auto installed Xcode 10 and with 9 installed retrospectively. YMMV!

    • Thanks — not sure what happened with the commands but have corrected that. Thanks.

      Re xcode-select — this shouldn’t be necessary. Mine is configured to /Applications/ and I can ensure that a correct simulator is picked from 11.4 by passing the –ios-version 11.4 option with the other commands.

  2. Hello Jason,

    Thanks for this blog. However it does not work for me. Just did a clean install on my macbook and performed the steps you describe. So basically I have an Xcode and an Xcode9.

    In the run configurations I selected “iphone 7 (11.4)”. All goes well until the final bit:

    [INFO] : Invoking xcodebuild
    [INFO] : Finished building the application in 24s 602ms
    [INFO] : Launching iOS Simulator
    [LiveView] version 1.2.2
    [LiveView] Alloy project monitor started
    [LiveView] File Server Started on
    [LiveView] Event Server Started on
    [ERROR] : Simulator is not available

    When I start Xcode 9.4 and goto Xcode > Open Developer Tool > iPhone 7
    a simulator is started.
    The error is still there when I try to run my app while the simulator is open.

    What am I doing wrong?

    UPDATE: By the way; I did install Command_Line_Tools_macOS_10.13_for_Xcode_9.4.1 just to be sure.

    UPDATE 2: I have the same as Paul Ryan; I had to run “xcode-select -s /Applications/” then it worked fine.

    • Raymond, thanks for the comment — I believe you’re not using the CLI which my main example uses so it requires the –ios-version parameter to select the correct SDK to build with. It should however still work in Studio — might require you go into the platform settings and refresh to get the proper list of simulators.

      • Hi Jason,

        Thank you for your reply.

        The Studio prefs? That would mean a setting for all projects in my workspace wouldn’t it?
        I changed the Run-Configuration for the specific project. Would that be enough?

        • I can’t launch Studio right now but all you should need to do it go to the settings, SDK config and do a refresh and it should pick up all the 11.x and 12.x simulators.


Please enter your comment!
Please enter your name here