Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
Sebastien Pouliot 5d887b61ee Bump mono for linker fix. Fixes #40574
[linker] Method decorated with System.Runtime.Serialization.*Attribute must be marked, Fixes #40574

    Some serialization attributes are unlikely to have direct reference,
    from IL, but will be needed at runtime to correctly serialize (or
    deserialize) objects.

    * OnDeserializedAttribute
    * OnDeserializingAttribute
    * OnSerializedAttribute
    * OnSerializingAttribute

    This, along with aad627c5e8ddf15397c87fa2d3e18b54f929c927, fixed bug
    40574. The later part will have new unit tests in XI.

    references:
    https://bugzilla.xamarin.com/show_bug.cgi?id=40574
2016-04-25 18:14:54 -04:00
builds Add an optional dependency on xamarin-specific build logic. 2016-04-24 14:48:45 -04:00
external Bump mono for linker fix. Fixes #40574 2016-04-25 18:14:54 -04:00
fsharp Build F#. 2016-04-24 14:47:24 -04:00
mk Bump maccore to get test updates. 2016-04-25 10:14:58 -04:00
mono/4.5 Add our mono runtimes to the build. 2016-04-24 14:47:24 -04:00
msbuild Build MSBuild targets & assemblies. 2016-04-24 14:48:44 -04:00
opentk Build the platform assemblies. 2016-04-24 14:47:26 -04:00
runtime Build our runtime. 2016-04-24 14:47:24 -04:00
src Add some documentation to src/README. 2016-04-24 15:35:53 -04:00
tests [tests] Add README placeholder note 2016-04-25 16:55:12 -04:00
tools [tools/apidiff] Fix typo in README. 2016-04-24 15:59:43 -04:00
.gitignore Build the platform assemblies. 2016-04-24 14:47:26 -04:00
.gitmodules Build MSBuild targets & assemblies. 2016-04-24 14:48:44 -04:00
LICENSE Adjust license to match requested format 2016-04-25 16:38:57 -04:00
Make.config Add an optional dependency on xamarin-specific build logic. 2016-04-24 14:48:45 -04:00
Makefile Add an optional dependency on xamarin-specific build logic. 2016-04-24 14:48:45 -04:00
README.md [README] Fix indentation. 2016-04-24 15:24:45 -04:00
configure Add build system. 2016-04-21 19:11:24 +02:00
product.snk Add our mono runtimes to the build. 2016-04-24 14:47:24 -04:00
system-dependencies.sh Add a script / makefile target to verify the system and any required dependencies. 2016-04-24 14:47:24 -04:00

README.md

Xamarin.iOS & Xamarin.Mac

This module is the main repository for both Xamarin.iOS and Xamarin.Mac.

Build requirements

  • Autoconf, automake and libtool.

    You can use brew, or this script to get it directly from gnu.org (you'll have to edit your PATH to include /opt/bin if you use the script)

    To install brew and all the tool dependencies:

    $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    $ brew update
    $ brew install libtool autoconf automake bison flex
    
  • Xcode

    To build the Xamarin.iOS and Xamarin.Mac SDKs you need a certain version of Xcode. The build will tell you exactly which version you need.

    You can download the Xcode version you need from Apple's Developer Center (requires an Apple Developer account).

    To ease development with different versions of the SDK that require different versions of Xcode, we require Xcode to be in a non-standard location (based on the Xcode version).

    For example Xcode 7.0 must be installed in /Applications/Xcode7.app.

    The recommended procedure is to download the corresponding Xcode dmg from Apple's Developer Center, extract Xcode.app to your system, and rename it before launching it the first time. Renaming Xcode.app after having launched it once may confuse Xcode, and strange errors start occuring.

  • Mono MDK.

    The build will tell you if you need to update, and where to get it.

  • Xamarin Studio.

    The build will tell you if you need to update, and where to get it.

  • You can also provision some of the dependencies with an included script:

      $ ./system-dependencies.sh --provision-[xs|mono]
    

## Quick build & install ##

Follow the following steps to build and install Xamarin.iOS and Xamarin.Mac:

  1. Clone this repository and its submodules

     $ git clone --recursive git@github.com:xamarin/xamarin-macios.git
     $ cd xamarin-macios
    
  2. Fetch dependencies and build everything

     $ make world
    
  3. Make sure permissions are OK to install into system directories (this will ask for your password)

     $ make fix-install-permissions
    
  4. Install into the system

     $ make install-system
    

Configure

There is a configure script that can optionally be used to configure the build. By default, everything required for both Xamarin.iOS and Xamarin.Mac will be built.

  • --disable-mac: Disable Mac-related parts.

  • --disable-ios: Disable iOS-related parts.

    In both cases the resulting build will contain both iOS and Mac bits because:

    • Parts of the iOS build depends on Mac parts (in particular mtouch uses Xamarin.Mac).

    • The class libraries builds can not be disabled because a very common error is to end up with code that only works/builds in either iOS or Mac.

  • --enable-ccache: Enables cached builds with ccache (default if ccache is found in the path).

  • --disable-ccache: Disables cached builds with ccache, even if it is present.

  • --disable-strip: If executables should be stripped or not. This makes it easier to debug native executables using lldb.

  • --help: Show the help.