Supporting the Unified APIs for iOS

KMullinsKMullins USMember, Xamarin Team Xamurai


As you might be aware, Apple will be requiring that all new iOS app submission support 64 bits by February 15, 2015. As a result all Xamarin Applications, Components and Binding Library Projects must be converted to the new Unified APIs.

Xamarin has created quite a bit of documentation on the new Unified APIs and what is required to support 64 bit applications in Xamarin.iOS or Xamarin.Mac.

For those working with Xamarin.iOS or Xamarin.Mac projects and for more information about the Unified APIs:

For those working with reusable component projects, all of our component documentation has been updated:

  • Migrating to Unified API for Components - This article covers the steps required to update an existing Xamarin component to support the Unified APIs for Xamarin.IOS and Xamarin.Mac applications.
  • Component Store Submission - Quickstart - This guide provides a quick and simple guide to help you to build, bundle and submit your components to the Xamarin Component Store.
  • Component Store Submission Guidelines - This document gives you an in depth look at the process of creating a component and provides all the information needed to build, bundle and submit your components to the Xamarin Component store.
  • Component Store Review Guidelines - This document provides the rules and requirements that your component should comply with to ensure it is reviewed and approved as quickly as possible.

For those working with the binding projects for 3rd party Objective-C Libraries. All of our binding documents have been updated to support Unified APIs and 64 bit apps:

  • Binding Objective-C Libraries - This document describes the process used to create C# bindings of Objective-C APIs and how the idioms in Objective-C are mapped to the idioms used in .NET.If you are binding just C APIs, you should use the standard .NET mechanism for this, the P/Invoke framework.
  • Binding Definition Reference Guide - This is the reference guide that describes all of the attributes available to binding authors to drive the binding generation process.
  • Binding Details - This document contains some of the internals of how a binding takes place. It is an advanced document with some technical information.

Finally, we have a document that covers migrating a Binding Project to the Unified APIs that should be released soon. It is in the review process right now. I'll post a link here when it is released.

If anyone has a question about supporting the Unified APIs, please let me know.




  • KMullinsKMullins USMember, Xamarin Team Xamurai

    For anyone interested in updating a Binding Project, the Migrating a Binding to the Unified API doc just went live.

  • KMullinsKMullins USMember, Xamarin Team Xamurai

    There has been a bit of confusion as to when you should use the new Native data types (nint, nuint, nfloat) in your Unified API iOS applications, especially when working with cross-platform code. The new Native data types should only be used when making a call to a Mac or iOS API where support for architecture-aware types are required.

    Xamarin.iOS and Xamarin.Mac Unified APIs still include the int, uint and float data types, as well as the RectangleF, SizeF and PointF types. These existing data types should continue to be used in any shared, cross-platform code.

    We've just released a new document, Working with Native Types in Cross-Platform Apps, that provides several possible solutions to situations where shared code does need to be made Native data type aware.

    Please let me know if there are any questions.


Sign In or Register to comment.