Run & Debug projects [easily] with stable Xcode on beta iOS devices
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Debug & Test your app on iOS's beta device using stable Xcode version

★★ Star me to follow the project! ★★
Created and maintaned by Daniele Margutti -

What's xcbetarunner?

xcbetarunner is a really simple command line utility which allows you to deploy and test your application using stable XCode version inside a device where you have installed an iOS Beta or Pre-Release version.


There are three different commands you can use with xbetarunner:

1. List iOS DeviceSupport's SDK for an Xcode version

The following command return a list of all iOS DeviceSupport's SDKs available in a particular Xcode version (if xc parameter is not specified /Applications/Xcode is used instead).

~ xcbetarunner -a list [-xc <path_to_xcode>]

Result is something like this:

~ xcbetarunner -a list
📲 Welcome to xcbetarunner

18 SDKs supported by Xcode 10.0(18A313):
- 11.4 (15F79)
- 11.3
- 11.2
- 11.1
- 11.0

2. Compare for new DeviceSupport's SDKs between two Xcode versions

The following command return the list of new DeviceSupport's SDKs currently available on which are not available on (you can change versions by passing -xc <path> paramater for a different and - xcb <path> for a different

~ xcbetarunner -a new

Result is something like this:

~ xcbetarunner -a new
📲 Welcome to xcbetarunner, a simple way to use new iOS SDKs on old XCode

2 SDKs from Xcode 10.0(18A313) but not available on Xcode 9.4.1(17E158):
- 12.0 (16A5318d)
- 11.4

3. Use DeviceSupport's SDKs from Xcode-beta to Xcode stable

The last command is the most important of the set. It allows you to support device with a specified iOS SDK version (available in an inside your stable version.

As for previous you can specify both the -xc and -xcb parameter (if xc parameter is not specified /Applications/ is used instead, if xcb is not specified /Applications/ ).

sudo is required for this command.

Copy all new SDKs not available into stable

~ sudo xcbetarunner -a use -sdk all


~ sudo xcbetarunner -a sync

Copy specified SDKs into stable

The following command copy SDK named/contained into 12.0 (16A5318d) folder. (You can pass multiple SDKs by passing a , separated list as -sdk parameter).

~ sudo xcbetarunner -a use -sdk 12.0\ \(16A5318d\)

Result is like this:

~ sudo xcbetarunner -a use -sdk 12.0\ \(16A5318d\)
📲 Welcome to xcbetarunner, a simple way to use new iOS SDKs on old XCode

🕑 Now copying "12.0 (16A5318d)"...
✅ Device Support for SDK "12.0 (16A5318d)" is now available on Xcode 9.4.1(17E158) 🎉

Default behaviour create a symbolic link (enough if you plan to keep the installed in your system). If you want to copy the SDK (it requires a bit more time) just puss -l false as parameter.


Installation is pretty simple, just execute the following commands from your terminal. Application will be installed in /usr/local/bin folder and you can use it using xbetarunner command.

$ git clone
$ cd xcbetarunner
$ make

Now you can call it just by using xcbetarunner from your terminal, folloed by the required arguments.

Questions or feedback?

xcbetarunner was created by Daniele Margutti.

Feel free to open an issue, or find me @danielemargutti on Twitter.