Bridges the worlds of .NET with the native APIs of macOS, iOS, tvOS, and watchOS.
Перейти к файлу
mathieubourgeois a921ee2fb1
Xamarin.Mac native Apple Silicon targetting support (#10115)
* Add support for Xamarin.Mac arm64

* Add compile product definition task

Xamarin.Mac can be provided with a ProductDefinition file for the generated pkg. Normally, providing a product definition was optional. However, with Apple Silicon, we have an extra issue : `productbuild` needs to know what architectures your package target. If not provided with them, it will guess to the best of its abilities. However, on Catalina and lower, the guess is x86_64, even if you have an arm64 slice. To fix this, we add a new task to compile the product definition and use this file to create the pkg. If you provide your own Product Definition, we can check and warn if the architectures don't match what we expect. If the file doesn't exist or there is no architecture, we set it ourselves based on our target architectures.

* Don't reference dynamic objC_send on arm64

When building in debug, we currently try to link dynamic objC_send symbols when targeting a 64-bit architecture. However, this is actually only defined on Intel architectures, not on arm64, so we end up failing because we're referring symbols that don't exist. Rework the `GetRequiredSymbols` to take an abi, and tag those symbols to only be valid on i386/x86_64, so they don't get referred at all when building on arm64, but still get referred in x86_64.

* Fix improper delete/move with already existing directories

* Fix stret requirement for Xamarin.Mac in arm64.

The generator supposes that we're running in x64 mode, refactor to take into account the possibility of running in arm64.

* Implement OS version generation in Product.plist, based on MinimumSystemVersion of the app

* Re-generalize some mmp registrar rules

`Microsoft.macOS.registrar` was missed by the current rule set

* Fix mmp tests

* Set E7072 as not translated

Tests were failing otherwise

* Rename Xamarin.Mac lib/x86_64 folder to 64bits (currently all targeted archs are the same)

* Fix style issues

* Fix `ToLower` usage for invariant usage

* Fix xtro-sharpie test
2021-03-17 21:48:02 -04:00
.github/workflows [Actions] Backports should use forks. (#10530) 2021-01-26 15:41:55 -05:00
Localize [Localization] Turning on OneLocBuild (#10843) 2021-03-15 13:50:21 -05:00
builds Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
docs [docs] Clarify optional protocol support with class vs interface (#10021) 2020-12-03 13:38:46 -05:00
dotnet [dotnet] Add support for specifying the VM with the _XamarinRuntime property. (#10881) 2021-03-16 18:32:04 +01:00
external [tests] Don't forcefully exit macOS tests. (#10844) 2021-03-17 18:46:29 +01:00
fsharp Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
jenkins [VSTS] Move away from Jenkins to VSTS pipelines for xamarin-macios. (#10302) 2021-01-06 10:48:54 -05:00
mk [CI] Remove login keychain references (#10778) 2021-03-17 08:16:58 +01:00
mono Add config file for libmono-native dllmap 2019-03-13 00:34:47 +01:00
msbuild Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
opentk Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
runtime Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
src Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
tests Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
tools Xamarin.Mac native Apple Silicon targetting support (#10115) 2021-03-17 21:48:02 -04:00
.editorconfig Add .editorconfig (#8058) 2020-03-10 11:24:46 -04:00
.gitignore [tests] Get samples build tests running again (#10677) 2021-02-21 10:24:26 -05:00
.gitmodules Add ikvm-fork as a submodule instead of using the sources embedded in the mono archive. (#9776) 2020-10-05 15:43:32 +02:00
CODEOWNERS [tests] Merge the msbuild-mac tests into the Xamarin.MacDev.Tests project. (#10129) 2020-12-04 13:05:51 +01:00
ISSUE_TEMPLATE.md Instruction to find the build logs (#6871) 2019-08-29 10:42:14 -04:00
LICENSE Adjust license to match requested format 2016-04-25 16:38:57 -04:00
Make.config [mono] Bump mono to get M1 binaries (#10836) 2021-03-12 12:33:40 -05:00
Make.versions Merge remote-tracking branch 'xamarin/xcode12.4' into main-xcode12.4-bump 2021-02-11 21:20:58 -05:00
Makefile [Makefile] Why copy-paste when you can 'make fix-xcode-select' (#10692) 2021-02-23 07:43:21 -05:00
NOTICE.txt Add NOTICE.txt and cgmanifest tool (#8843) 2020-06-12 14:30:21 -05:00
NuGet.config [dotnet] Initial support for .NET6 from Windows (#10590) 2021-02-12 07:43:17 +01:00
README.md [README] Bump downloads to our new Xamarin.iOS stable (#9981) 2020-10-28 07:35:47 -04:00
SECURITY.MD Add SECURITY.MD to repo (as suggested by OSPO) (#7019) 2019-09-19 17:44:22 -04:00
Versions-ios.plist.in Merge remote-tracking branch 'xamarin/xcode12.4' into main-xcode12.4-bump 2021-02-11 21:20:58 -05:00
Versions-mac.plist.in [xcode12.3] Initial bump to Xcode 12.3 Beta 1 (#10135) 2020-11-23 09:48:06 -05:00
Xamarin.Mac.sln Fix path to dont link project in Xamarin.Mac.sln. (#8109) 2020-03-16 09:42:52 +01:00
Xamarin.iOS.sln [src] Use `Runtime.NSLog` instead of `System.Console.WriteLine` (#8626) 2020-05-20 13:38:44 -04:00
banner.png [README] Add Xamarin.iOS + Xamarin.Mac banner (#1665) 2017-02-08 17:42:48 -05:00
configure [configure] Use bash instead of sh and fix a shellcheck warning about unquoted variables. (#10856) 2021-03-12 23:14:16 +01:00
mac-entitlements.plist Implement notarization. (#6928) 2019-09-09 00:34:11 -07:00
product.snk Add our mono runtimes to the build. 2016-04-24 14:47:24 -04:00
system-dependencies.sh [system-dependencies] Only use the locally installed .NET version. (#9885) 2020-10-16 08:23:22 +02:00
versions-check.csharp [versions-check.csharp] Improve this script a bit (#10323) 2021-01-11 10:47:57 +01:00

README.md

Xamarin.iOS + Xamarin.Mac logo

Xamarin.iOS & Xamarin.Mac

Welcome!

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

These SDKs allow us to create native iOS, tvOS, watchOS and macOS applications using the same UI controls we would in Objective-C and Xcode, except with the flexibility and elegance of a modern language (C#), the power of the .NET Base Class Library (BCL), and two first-class IDEs—Visual Studio for Mac and Visual Studio—at our fingertips.

This repository is where we do development for the Xamarin.iOS and Xamarin.Mac SDKs. There are a few ways that you can contribute, for example:

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:

Downloads

The preferred method for installing Xamarin.iOS and Mac is to use the Visual Studio installers (Windows, Mac).

The team also strongly recommends using the latest Xamarin SDK and Xcode whenever possible.

However, we provide links to older Xamarin.iOS and Mac packages for macOS downgrades and build machine configuration.

Version Xamarin.iOS Xamarin.Mac
d16.7 14.2.0.12 6.20.2.2
d16.6 13.18.2.1 6.18.2.1
d16.5 13.16.0.13 6.16.0.13
d16.4 13.10.0.21 6.10.0.21
d16.3 13.6.0.12 6.6.0.12
d16.2 12.14.0.114 5.14.0.114
d16.1 12.10.0.157 5.10.0.157
d16.0 12.8.0.2 5.8.0.0

Feedback

Discord

License

Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.