Environment Checks

PDF for offline use:

This recipe shows how to make various environment checks from your code to handle different runtime environments.

Check Simulator vs. Device

You can detect whether you are running on the simulator or device by looking up the value of the ObjCRuntime.Runtime.Arch field. If the value is ARCH.Device, you are running on the physical hardware, otherwise you are running on the simulator.

Check the iOS Version

The iOS operating system version can be checked like this:

if (UIDevice.CurrentDevice.CheckSystemVersion (7,0))
{
   // Code that uses features from Xamarin.iOS 7.0 and later
} else {
   // Code to support earlier iOS versions
}

Check your Xamarin.iOS Version

The version of Xamarin.iOS is stored in the field ObjCRuntime.Constants.Version. This is a string, you can turn this into a Version object with code like this:

Version version = new Version (ObjCRuntime.Constants.Version);
if (version > new Version (7,0))
{
   // Code that uses features from Xamarin.iOS 7.0
}