March 11th, 2012

MonoTouch and iOS 5.1

In iOS 5.1 Apple introduced restrictions to stdout calls that can cause applications that are installed via the App Store or Ad-hoc deployment to throw an unhandled exception and to terminate if they attempt to write to the console. This includes calls to Console.Write* (Write, WriteLine). This problem affects all apps that attempt to use stdout calls, including those written in Objective-C, although in Objective-C the error is silently ignored.

This problem has been addressed with MonoTouch 5.2.4 by prohibiting any console output via apps that are built in Release mode. However, any apps that were built in a previous version, or apps that have been inadvertently deployed in Debug mode will experience this issue.

In order to address this in your apps, please do one of the following:

  • Recompile with MonoTouch 5.2.4 or later.
  • Remove any Console.Write*, or other console out calls (Debug.Write* calls are ok, as they only output in Debug mode).

If your app is in the App Store, you should resubmit it and request a free, expedited app review for existing apps which can be found here. Under Request Details Section > Request Type drop down, make sure to select Critical Bug Fix, and in the Reason for Request details box, let them know that you’re removing the Console Output calls.

If you have an old version of MonoTouch, you can get the updates from MonoDevelop using Check for Updates. If you need any more help, please submit a request to support@xamarin.com.

0 comments

Discussion are closed.