MonoTouch 4.1.0

MonoTouch 4.1.0 is part of our Beta Series that will lead up to MonoTouch 4.2.

As any other beta updates, you can install it by selecting the Beta channel on MonoDevelop and installing your MonoTouch package.

New Features

Device debugging is now done over the USB cable instead of Wi-Fi:

  • To debug over USB, you will need MonoDevelop 2.6 RC 1 installed
  • If you are using older MonoDevelop versions, it will continue to use WiFi

This solves the problems that users had with WiFi configurations between their Macs and their iOS devices and removes all the configuration components from the development process (no need to configure the debugger on the device if you happened to have a separate network)


  1. Upgraded Mono engine to 2.10.4
  2. Working generic variance and generic virtual methods

    Those CLR features are now supported on device.

    Note: The mobile profile still won’t feature the .NET 4.0 variance change as those might cause unwanted regressions.
  3. Smaller applications based on our improved linker, see this blog post for details.
  4. MonoTouch.MessageUI.MFMessageComposeViewController now has .NET-style events.
  5. Improved diagnostics in error conditions, such as:
    1. When managed objects are collected but the objective-c object are still alive
    2. When objective-c types are missing from the executable due to improper linking
  6. Reduced memory allocation for per-assembly AOT structures slightly

Bug Fixes:

Memory Retention/GC fixes:

  1. Fix UIControl retention problem when events were wired up
  2. Views are no longer retained if they were previously removed with RemoveFromSuperview ()
  3. UIGestureRecognizers can now remove targets
  4. The AOT compiler was incorrectly serializing some types and missing finalizer references.

Other fixes:

  1. Fixes for sqlite3.dylib when running in the simulator on newer sdk releases
  2. Simulator is once again activated when running the application, this wasbroken after the XCode 4.1 update (#202).
  3. Added a default SynchronizationContext for the main UI thread so that you can use the TPL to schedule tasks which update the UI (#690944)
  4. LLVM fix for assemblies with hyphens (‘-’) in their name.

Known Problems

With this release, we know that Console.WriteLine does not output any messages to the Application output.

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.