xamarin-macios/src
Rolf Bjarne Kvinge 391b46b14f
[Foundation] Make NSBundleExecutableArchitecture non-native. (#13754)
NSBundleExecutableArchitecture is an enum of our own invention, so there's no
need for it to be a native enum.
2022-01-18 10:52:15 +01:00
..
ARKit [NET 6 Attribute Conversion] ARKit (#13661) 2022-01-11 10:21:03 -06:00
AVFoundation [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
AVKit [NET 6 Attribute Conversion] AVKit (#13710) 2022-01-14 10:20:23 -06:00
Accelerate [src] Move manual binding code to use C#'s nint/nuint instead of our custom System.nint/System.nuint. 2021-12-03 08:02:49 +01:00
Accessibility [Accessibility] Update bindings for Xcode 13.0 beta 1 (#11998) 2021-07-07 17:25:31 -04:00
Accounts [accounts] Add nullability for manual bindings (#10161) 2020-11-30 09:55:07 -05:00
AdSupport [catalyst][adsupport] Update xtro - framework is not available (#11625) 2021-05-20 09:30:55 -04:00
AddressBook [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
AddressBookUI [NET 6 Attribute Conversion] AddressBookUI (#13716) 2022-01-14 10:20:06 -06:00
AppKit [AppKit/Foundation] Use NSUnderlineStyle from the Foundation namespace everywhere. (#13707) 2022-01-14 14:48:09 +01:00
AssetsLibrary [AssetsLibrary] Add Support for DotNet Attributes 2021-09-07 14:11:48 -05:00
AudioToolbox [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
AudioUnit [AudioUnit] Improve a few AudioUnit methods to return the error code. (#13730) 2022-01-17 17:02:43 +01:00
AuthenticationServices [AuthenticationServices] Add Support for DotNet Attributes (#12705) 2021-09-13 19:06:59 -04:00
BackgroundTasks Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
BusinessChat [d16-7] [src] Remove Classic code from the CoreBluetooth, CoreAudioKit, CoreAnimation, ContactsUI, Contacts, CloudKit, ClassKit, CFNetwork, CarPlay, CallKit and BusinessChat frameworks. (#8784) 2020-06-05 13:08:51 -04:00
CFNetwork [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
CallKit [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
CarPlay [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
Carbon
ClassKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
ClockKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
CloudKit [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
Compression [dotnet] Add `[Uns|S]upportedOSPlatformAttribute` to manual bindings (part 1) (#11230) 2021-04-16 15:05:02 -04:00
Contacts Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
CoreAnimation [CoreAnimation] Rename CATransform3D's fields to follow standard naming conventions for .NET. (#13684) 2022-01-12 21:46:20 +01:00
CoreBluetooth [CoreBluetooth] Use new availability attributes and remove API that isn't in Apple's headers from .NET. (#13293) 2021-11-08 21:32:18 +01:00
CoreData [CoreData] Move CoreData into the .NET age. (#13718) 2022-01-14 17:13:46 +01:00
CoreFoundation [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
CoreGraphics [CGAffineTransform] Rename public fields in .NET to follow Apple and managed naming conventions. Fixes #13494. (#13737) 2022-01-17 09:26:39 +01:00
CoreHaptics [CoreHaptics] Add support for Xcode13 beta1. (#11963) 2021-06-17 15:15:07 -04:00
CoreImage [CGAffineTransform] Rename public fields in .NET to follow Apple and managed naming conventions. Fixes #13494. (#13737) 2022-01-17 09:26:39 +01:00
CoreLocation [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
CoreML [generator] Use '[U]IntPtr' in P/Invoke signatures instead of 'n[u]int'. (#13043) 2021-10-25 10:56:02 +02:00
CoreMedia [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
CoreMidi [CoreMidi] Fix detecting whether MIDIPacket needs alignment for macOS and Mac Catalyst on ARM64. (#13534) 2021-12-13 08:31:11 +01:00
CoreMotion [CoreMotion] Add Support for DotNet Attributes 2021-09-13 19:01:23 -04:00
CoreServices [src] Adjust visibility of numerous (IntPtr) and (IntPtr, bool) constructors (#13444) 2021-11-26 14:24:05 +01:00
CoreSpotlight [CoreSpotlight] Add Support for DotNet Attributes 2021-09-08 10:30:40 -04:00
CoreTelephony [generator] Do not inline duplicate attributes when processing protocols (#10683) 2021-03-01 08:39:52 -05:00
CoreText [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
CoreVideo [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
CoreWlan [CoreWLAN] Updates for Catalyst 2021-10-21 16:03:25 -04:00
Darwin [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
EventKit [EventKit] Updates for Xcode13 Beta1 (#12022) 2021-07-01 18:25:58 -05:00
EventKitUI [EventKitUI] Add Support for DotNet Attributes (#12625) 2021-09-07 14:32:37 -05:00
ExternalAccessory Bump the minimum iOS version to 7.0. Fixes #6213. (#6878) 2019-08-30 01:07:30 -07:00
FileProvider [FileProvider] Exclude some deprecated API from .NET. (#13370) 2021-11-19 08:53:32 +01:00
FinderSync Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
Foundation [Foundation] Make NSBundleExecutableArchitecture non-native. (#13754) 2022-01-18 10:52:15 +01:00
GLKit [Tests] Fix cecil tests. (#12853) 2021-09-28 08:09:23 -04:00
GameController [Tests] Fix cecil tests. (#12853) 2021-09-28 08:09:23 -04:00
GameKit [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
GameplayKit [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
HealthKit [ObjCRuntime] Add nullability attributes to the Runtime class + numerous other code updates. (#13021) 2021-10-19 08:11:45 +02:00
HomeKit [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
IOSurface [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
ImageCaptureCore [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
ImageIO [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
ImageKit [macos][imagekit] Update for Xcode 11 beta 1 (#6772) 2019-08-14 22:06:24 -04:00
InputMethodKit
Intents [Intents] Remove obsolete manual Intents bindings from .NET. (#13724) 2022-01-17 09:44:19 +01:00
JavaScriptCore [ObjCRuntime] Remove deprecated availability attribute API from .NET. (#13433) 2021-12-09 07:41:07 +01:00
LocalAuthentication [LocalAuthentication] Adjust code for .NET and fix availability of LAContext.MaxBiometryFailures (#13425) 2021-11-24 15:37:56 +01:00
MLCompute [MLCompute] Add support for Xcode 13 beta 4. (#12348) 2021-08-05 01:02:27 -04:00
MapKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MediaAccessibility [generator] Use new `CFArray.StringArrayFromHandle` instead of the existing `NSArray` API (#12368) 2021-08-06 09:17:48 -04:00
MediaLibrary [d16-7] [src] Remove Classic code from the JavaScriptCore, MapKit, MediaLibrary, MediaToolbox, Metal, MetalKit, MetalPerformanceShaders, MobileCoreServices, ModelIO, MultipeerConnectivity, NetworkExtension and NotificationCenter frameworks. (#8806) 2020-06-10 09:29:53 +02:00
MediaPlayer [MediaPlayer] Remove deprecated/removed API in .NET (#13427) 2021-11-24 15:37:23 +01:00
MediaToolbox [MTAudioProcessingTap] Subclass NativeObject + numerous other code updates (#13190) 2021-11-02 15:53:16 +01:00
MessageUI Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
Metal [Metal] Exposing Selectors in iOS. Fixes #12648 (#13644) 2022-01-04 16:42:52 -06:00
MetalKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MetalPerformanceShaders [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
MetricKit [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
MobileCoreServices [generator] Use new `CFArray.StringArrayFromHandle` instead of the existing `NSArray` API (#12368) 2021-08-06 09:17:48 -04:00
ModelIO [src] Adapt some code to work with both C#'s nint/nuint and our custom System.nint/System.nuint types (#13019) 2021-10-19 08:12:20 +02:00
MultipeerConnectivity [d16-7] [src] Remove Classic code from the JavaScriptCore, MapKit, MediaLibrary, MediaToolbox, Metal, MetalKit, MetalPerformanceShaders, MobileCoreServices, ModelIO, MultipeerConnectivity, NetworkExtension and NotificationCenter frameworks. (#8806) 2020-06-10 09:29:53 +02:00
NativeTypes [src] Remove System.nint and System.nuint from .NET 2021-12-03 08:02:49 +01:00
NaturalLanguage [generator] Use new `CFArray.StringArrayFromHandle` instead of the existing `NSArray` API (#12368) 2021-08-06 09:17:48 -04:00
NearbyInteraction [NearbyInteraction] Convert spaces to tabs. (#12364) 2021-08-06 15:18:19 -04:00
Network [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
NetworkExtension [NEVpnManager/NEHotspotEapSettings] Enable nullability. (#13188) 2021-11-02 15:54:47 +01:00
NewsstandKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
NotificationCenter Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
ObjCRuntime [ObjCRuntime] Fix the DisposableObject.Owns property to return the correct value. Fixes #13646. (#13666) 2022-01-11 15:37:31 +01:00
OpenGL [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
OpenGLES Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
PassKit [PassKit] Update bindings for Xcode 13.0 beta 1, 2 (#12299) 2021-08-03 13:17:27 -04:00
PdfKit [PdfKit] Add missing enum. (#13198) 2021-11-02 10:42:43 -04:00
Photos [Photos] Add Support for DotNet Attributes 2021-09-09 12:19:41 -04:00
PhotosUI [PhotosUI][Xcode12] Update for beta 4 (#9285) 2020-08-06 11:29:30 -04:00
PrintCore [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
QTKit [QTKit] Remove the QTKit framework from .NET. (#13224) 2021-11-03 08:48:34 +01:00
QuickLook [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02:00
QuickLookUI
ReplayKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
SafariServices [monotouch-test] Make it work with Mac Catalyst. 2021-01-15 17:52:28 +01:00
SceneKit [SceneKit] Make SCNMatrix4 column-major in .NET. Fixes #4652. (#13695) 2022-01-14 07:30:19 +01:00
ScriptingBridge Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
SearchKit [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
Security [src] Make sure the (IntPtr/NativeHandle, bool) ctor is always preserved (conditionally) for types that subclass NativeObject. Fixes #13699. (#13708) 2022-01-14 15:26:23 +01:00
SensorKit [dotnet] Add `[Uns|S]upportedOSPlatformAttribute` to manual bindings (part 1) (#11230) 2021-04-16 15:05:02 -04:00
Simd
Social Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
SpriteKit [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
StoreKit [src] Define XAMCORE_3_0 for .NET for all platforms. (#13566) 2021-12-17 07:44:02 +01:00
System.ComponentModel Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
System.Drawing Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
System.Net.Http [CFNetworkHandler] Only use public API to set cookies in CookieContainers. Fixes #8072. (#13535) 2021-12-14 08:08:02 +01:00
SystemConfiguration [.NET/SystemConfiguration] Use [UnmanagedCallersOnly] instead of [MonoPInvokeCallback] for the managed callbacks called from native code. (#13295) 2021-11-08 16:16:29 +01:00
TVMLKit [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
TVServices [generator][dotnet] Add support for `[Uns|S]upportedOSPlatformAttribute` (#10580) 2021-04-10 11:09:14 -04:00
Twitter Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
UIKit [src] Define XAMCORE_3_0 for .NET for all platforms. (#13566) 2021-12-17 07:44:02 +01:00
UserNotifications Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
VideoSubscriberAccount Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
VideoToolbox [VideoToolbox] Add a VTCompressionSession.EncodeFrame overload that takes a CVImageBuffer instead of a handle to one. (#13631) 2022-01-10 13:00:34 +01:00
Vision [src] Adjust P/Invokes to objc_msgSend to cope with the new NativeHandle signatures. 2021-11-26 14:25:19 +01:00
WKWebKit [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
WatchConnectivity Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
WatchKit [WatchKit] Remove the WatchKit framework from iOS in .NET. (#13299) 2021-11-08 16:17:26 +01:00
WebKit [WebKit] Add Support for DotNet Attributes (#12653) 2021-09-09 22:59:32 -05:00
XKit [AppKit] Add Support for DotNet Attributes (#12684) 2021-09-13 22:34:33 -05:00
bgen [main] Update dependencies from dotnet/installer (#12935) 2021-10-08 14:12:23 +02:00
generate-frameworks-constants [src] Generate a .NET-specific version of Constants.<platform>.generated.cs. (#13298) 2021-11-08 16:17:13 +01:00
iAd [src] Update constructors to take a NativeHandle parameter insteaf of an IntPtr parameter. 2021-11-26 14:25:20 +01:00
iTunesLibrary Remove Catalyst availability and deprecation 2021-10-13 09:44:48 -04:00
xlf [bgen] Remove trailing newlines from warning/error messages. (#10701) 2021-02-25 15:04:00 +01:00
.gitignore [build] Use arcade dependency management tooling (#10890) 2021-04-02 00:02:27 -04:00
AssemblyInfo.cs.in [dotnet] Use `[AssemblyMetadata ("IsTrimmable", "True")]` in platforms assemblies (#11228) 2021-04-16 15:08:19 -04:00
Constants.iOS.cs.in Replace manually maintained code about frameworks with generated code. (#10218) 2020-12-15 18:44:05 +01:00
Constants.mac.cs.in Rename any *OSX_SDK_VERSION variables to *MACOS_SDK_VERSION. (#13411) 2021-11-22 18:48:05 +01:00
Constants.maccatalyst.cs.in [CoreGraphics] Add support for xcode13 beta 5. (#12589) 2021-09-01 11:24:10 -04:00
Constants.tvos.cs.in Replace manually maintained code about frameworks with generated code. (#10218) 2020-12-15 18:44:05 +01:00
Constants.watch.cs.in Replace manually maintained code about frameworks with generated code. (#10218) 2020-12-15 18:44:05 +01:00
ILLink.LinkAttributes.tvos.xml [ObjCRuntime] Remove deprecated availability attribute API from .NET. (#13433) 2021-12-09 07:41:07 +01:00
ILLink.LinkAttributes.xml.in [ObjCRuntime] Remove deprecated availability attribute API from .NET. (#13433) 2021-12-09 07:41:07 +01:00
ILLink.Substitutions.MacCatalyst.xml [tests] Add .NET version of link sdk for macOS. (#12462) 2021-08-18 10:01:26 +02:00
ILLink.Substitutions.ios.xml [objcruntime] Refactor `Dlfcn.dlopen` to ease linking (#12002) 2021-06-23 09:13:42 -04:00
ILLink.Substitutions.macOS.xml [tests] Add .NET version of link sdk for macOS. (#12462) 2021-08-18 10:01:26 +02:00
ILLink.Substitutions.tvos.xml [objcruntime] Refactor `Dlfcn.dlopen` to ease linking (#12002) 2021-06-23 09:13:42 -04:00
Makefile [src] Fix dependencies for core-maccatalyst.dll. (#13627) 2021-12-22 17:57:43 +01:00
Makefile.generator [iAd] Remove this framework from .NET. (#13269) 2021-11-05 08:07:18 +01:00
MinimumVersions.cs.in Rename any *OSX_SDK_VERSION variables to *MACOS_SDK_VERSION. (#13411) 2021-11-22 18:48:05 +01:00
MonoNativeFunctionWrapperAttribute.cs [d16-7] [src] Remove the remaining Classic code. (#8820) 2020-06-11 19:25:18 +02:00
MonoPInvokeCallbackAttribute.cs [d16-7] [src] Remove the remaining Classic code. (#8820) 2020-06-11 19:25:18 +02:00
MonoTouch.NUnitLite.maccatalyst.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MonoTouch.NUnitLite.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MonoTouch.NUnitLite.tvos.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MonoTouch.NUnitLite.watchos.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
OpenTK.dll.sources Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
README.md [.NET] Move the nfloat type to the ObjCRuntime namespace for .NET. (#13092) 2021-10-28 11:06:31 +02:00
Resources.Designer.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
Resources.resx [bgen] Remove trailing newlines from warning/error messages. (#10701) 2021-02-25 15:04:00 +01:00
Version.in
accelerate.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
accessibility.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
accounts.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
addressbook.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
addressbookui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
adservices.cs [introspection] Add/fix/remove availability attributes for Mac Catalyst to make introspection's Introduced test pass. (#10587) 2021-04-13 15:48:20 -04:00
adsupport.cs [catalyst][adsupport] Update xtro - framework is not available (#11625) 2021-05-20 09:30:55 -04:00
appclip.cs [xcode12][appclip] Update for beta 1 (#8964) 2020-06-26 17:13:30 -04:00
appkit.cs [AppKit] Rename NSTableView.DragImageForRowsWithIndexestableColumnseventoffset to NSTableView.DragImageForRows in .NET. (#13723) 2022-01-17 09:45:03 +01:00
apptrackingtransparency.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
arkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
assetslibrary.cs [src] Change all usages of old-style availability attributes to new-style availability attributes. (#13332) 2021-11-10 18:12:12 +01:00
audiotoolbox.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
audiounit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
authenticationservices.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
automaticassessmentconfiguration.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
avfoundation.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
avkit.cs Prepare for NET6 attribute conversion with hand fixes (#13658) 2022-01-07 13:57:20 -06:00
backgroundtasks.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
bmac.ikvm [xcode11] Stop building/shipping 32-bit Xamarin.Mac bits. Partial fix for #6300. (#6393) 2019-07-15 10:19:24 -07:00
btouch-native Use relative paths in scripts. (#7545) 2019-12-10 12:47:30 +01:00
btouch-native.in
btouch.cs [generator] Add support for the new NativeHandle type. 2021-11-26 14:25:19 +01:00
btv Use relative paths in scripts. (#7545) 2019-12-10 12:47:30 +01:00
businesschat.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
bwatch Use relative paths in scripts. (#7545) 2019-12-10 12:47:30 +01:00
bwatch.in
callkit.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
carplay.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
cfnetwork.cs [introspection] Add/fix/remove availability attributes for Mac Catalyst to make introspection's Introduced test pass. (#10587) 2021-04-13 15:48:20 -04:00
chip.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
classkit.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
clockkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
cloudkit.cs [src] Add a new ObjCRuntime.NativeHandle type to represent native handles for .NET. Fixes #13126. (#13356) 2021-12-02 08:38:39 +01:00
compression.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
contacts.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
contactsui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coreanimation.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coreaudiokit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
corebluetooth.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coredata.cs [CoreData] Move CoreData into the .NET age. (#13718) 2022-01-14 17:13:46 +01:00
corefoundation.cs [generator] Use new CFArray.ArrayFromHandle instead of the existing NSArray API (#12415) 2021-08-12 14:19:25 -04:00
coregraphics.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
corehaptics.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coreimage.cs [CoreImage] Update CIFilter API for .NET. (#13524) 2021-12-10 08:08:00 +01:00
corelocation.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
corelocationui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coremedia.cs [xcode12.2][intro] check for duplicate or inconsistent availability attributes (#9825) (#9856) 2020-10-14 13:57:14 -04:00
coremidi.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
coreml.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
coremotion.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
corenfc.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
coreservices.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
corespotlight.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coretelephony.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
coretext.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
corevideo.cs [CoreVideo] Add support for Xcode 13 beta3. (#12257) 2021-09-13 11:09:26 -04:00
corewlan.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
custom-make.sh
devicecheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
dotnet.tmpl.csproj [src] Add .NET project files. (#13018) 2021-10-19 08:12:32 +02:00
error.cs [Localization] Add generator error messages (#7531) 2020-01-08 16:07:46 -05:00
eventkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
eventkitui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
executionpolicy.cs [executionpolicy] Update for Xcode 11 beta 1 (#6774) 2019-08-14 22:07:55 -04:00
externalaccessory.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
fileprovider.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
fileproviderui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
findersync.cs [d16-7] [src] Remove Classic code from the FinderSync, FileProvider[UI], ExternalAccessory, EventKit[UI], DeviceCheck, CoreWlan and CoreVideo frameworks. (#8803) 2020-06-10 09:28:29 +02:00
foundation.cs [Foundation] Fix a few method names to follow naming guidelines for .NET. (#13763) 2022-01-18 10:39:04 +01:00
frameworks.sources [SceneKit] Make SCNMatrix4 column-major in .NET. Fixes #4652. (#13695) 2022-01-14 07:30:19 +01:00
gamecontroller.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
gamekit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
gameplaykit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
generate-defines.csharp [src] Generate a define for each framework for every platform. (#10171) 2020-12-01 11:14:32 +01:00
generate-errors.csharp [build] generate Errors.Designer.cs for runtime assemblies (#8921) 2020-06-23 09:01:05 +02:00
generate-frameworks.csharp [src] Generate generated-framework.g.cs for Mac Catalyst 2020-12-03 10:43:19 +01:00
generator-attribute-manager.cs [ObjCRuntime] Remove deprecated availability attribute API from .NET. (#13433) 2021-12-09 07:41:07 +01:00
generator-attributes.cs [ObjCRuntime] Remove deprecated availability attribute API from .NET. (#13433) 2021-12-09 07:41:07 +01:00
generator-diff.mk
generator-enums.cs [ObjCRuntime] Add nullability attributes to the Runtime class + numerous other code updates. (#13021) 2021-10-19 08:11:45 +02:00
generator-filters.cs [generator] Add support for C#'s nint/nuint types 2021-12-03 08:02:49 +01:00
generator-typemanager.cs [generator] Add support for C#'s nint/nuint types 2021-12-03 08:02:49 +01:00
generator.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
generator.csproj Replace IKVM.Reflection with MetadataLoadContext (#9864) 2021-05-21 15:15:59 +02:00
generator.sln
glkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
global.css
healthkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
healthkitui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
homekit.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
iad.cs [iAd] Remove this framework from .NET. (#13269) 2021-11-05 08:07:18 +01:00
identitylookup.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
identitylookupui.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
imagecapturecore.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
imageio.cs [ImageIO] Add support for Xcode 13 beta 3. (#12145) 2021-07-20 15:42:56 -04:00
imagekit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
inputmethodkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
intents.cs [Intents] Remove INSetMessageAttributeIntentResponseCode from macOS in .NET. (#13752) 2022-01-18 08:09:49 +01:00
intentsui.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
iosurface.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
ituneslibrary.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
javascriptcore.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
linkpresentation.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
localauthentication.cs [LocalAuthentication] Adjust code for .NET and fix availability of LAContext.MaxBiometryFailures (#13425) 2021-11-24 15:37:56 +01:00
localauthenticationembeddedui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mailkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mapkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mediaaccessibility.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
medialibrary.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mediaplayer.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
mediasetup.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mediatoolbox.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
messages.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
messageui.cs [xtro] Fix nullability checks on parameters (#10279) 2020-12-15 08:24:10 -05:00
metal.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
metalkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
metalperformanceshaders.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
metrickit.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
mlcompute.cs [MLCompute] Add support for Xcode 13 beta 4. (#12348) 2021-08-05 01:02:27 -04:00
mobilecoreservices.cs [ModelIO] Add Xcode 13 beta4 support. (#12349) 2021-08-04 22:40:05 -04:00
modelio.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
multipeerconnectivity.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
naturallanguage.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
nearbyinteraction.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
network.cs [Network] Implement all bindings up to Xcode 13.1 (#13135) 2021-11-08 11:37:47 -05:00
networkextension.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
newsstandkit.cs [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
notificationcenter.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
opengl.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
opengles.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
opentk.csproj Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
oslog.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
packages.config [Localization] Add generator error messages (#7531) 2020-01-08 16:07:46 -05:00
passkit.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
pdfkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
pencilkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
phase.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
photos.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
photosui.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
printcore.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
pushkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
qtkit.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
quartzcomposer.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
quicklook.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
quicklookUI.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
quicklookthumbnailing.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
replaykit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
rosetta.pl
safariservices.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
scenekit.cs [src] Add a new ObjCRuntime.NativeHandle type to represent native handles for .NET. Fixes #13126. (#13356) 2021-12-02 08:38:39 +01:00
screentime.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
scriptingbridge.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
searchkit.cs
security.cs [Security] Add kSecUseNoAuthenticationUI for macOS. (#13431) 2021-11-24 15:35:46 +01:00
sensorkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
shazamkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
social.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
soundanalysis.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
speech.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
spritekit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
storekit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
systemconfiguration.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
threadnetwork.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
touch-unit.sources [master] Bump mono to pickup needed nunitlite changes. (#7812) 2020-02-07 09:56:41 -05:00
tvmlkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
tvservices.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
tvuikit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
twitter.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
uikit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
uniformtypeidentifiers.cs initial changes for Xcode13 UniformTypeIdentifiers Beta1 (#12008) 2021-06-23 16:27:51 -05:00
usernotifications.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
usernotificationsui.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
videosubscriberaccount.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
videotoolbox.cs Update based on feedback 2021-10-15 11:37:52 -04:00
vision.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
visionkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
watchconnectivity.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
watchkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
webkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
wkwebkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
xamios.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xammac.pc.in
xammac.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xammaccatalyst.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xamtvos.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xamwatch.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xkit.cs [Foundation] Fix signature for NSLayoutConstraint.[First|Second]Anchor in .NET. (#13750) 2022-01-18 08:07:18 +01:00

README.md

Platform assemblies

This directory contains the source code and build logic to build the platform assemblies.

Generator

The generator takes API definition files (most *.cs files in src/) as input, and generates the required binding code.

There is one generator executable, based on IKVM, that's used to generate the binding code for all platforms.

The generator relies heavily on binding attributes; all the binding attributes (that are not in the platform assembly) are compiled into a separate attribute assembly (Xamarin.[iOS|TVOS|WatchOS|Mac].BindingAttributes.dll).

Since the platform assemblies (and thus all the binding attributes assemblies as well) reference each platform's BCL, those assemblies can't be loaded directly into the generator at runtime. In order to not make the generator code too complicated, all the attributes are also compiled into the generator executable, and then instantiated as mock-objects of the real attributes.

The solution generator.sln can be used to debug the generator. There are multiple run configurations (ios, tvos, watchos, mac-unified, mac-full), each configured to execute the generator with the options for the corresponding profile.

Generator diff

Two special make targets can be used to compare the generated code (.g.cs files) changes between two branches.
This is required when making changes to the generator.

  1. Checkout the clean base branch (e.g main's HEAD) the feature (target) branch is based on.
  2. Do make generator-reference in xamarin-macios/src.
  3. Checkout the feature branch that requires the diff.
  4. Do make generator-diff.

Tip: do git diff | pbcopy in xamarin-ios/src/generator-reference and paste that anywhere (gist for instance).

Conditional compilation

These are the symbols defined for each platform assembly:

Assembly Symbols
Xamarin.iOS.dll IPHONE MONOTOUCH IOS
Xamarin.Mac.dll MONOMAC
Xamarin.WatchOS.dll IPHONE MONOTOUCH WATCH XAMCORE_3_0
Xamarin.TVOS.dll IPHONE MONOTOUCH TVOS XAMCORE_3_0

To build core for only one platform, use the platform unique variables IOS, MONOMAC, WATCH or TVOS.

Core Assemblies

Currently 2 variations of the core Xamarin.iOS assembly and 4 variations of the core Xamarin.Mac assembly are produced:

### Xamarin.iOS ###

  • A 32-bit Unified assembly (uses System.nint in place of NSInteger, etc.)
  • A 64-bit Unified assembly (same as 32-bit Unified)

### Xamarin.Mac ###

  • A 32-bit Unified assembly (uses System.nint in place of NSInteger, etc.)
  • A 64-bit Unified assembly (same as 32-bit Unified)
  • A 32-bit Full assembly (uses System.nint in place of NSInteger, and references the v4.5 BCL)
  • A 64-bit Full assembly (same as 32-bit Full)

Classic Assemblies

The 32-bit Classic assemblies for iOS and Mac are no longer built and are now copied from the macios-binaries module.

The Classic assembly are copied in, tested, and shipped in order to not break customer code. Customers can choose to continue using this assembly, but we will encourage customers to move to our Unified assemblies.

The Unified assemblies provides many improvements and support for 64-bit iOS and OS X APIs.

Native Types

Most native APIs use NSInteger (and related) typedefs. On 32-bit systems, these are 32-bit underlying types; on 64-bit systems, these are 64-bit underlying types.

Historically Xamarin.iOS and Xamarin.Mac have bound these explicitly as 32-bit (System.Int32, etc). With the move to 64-bit that has been ongoing in OS X for a few versions (10.6/Snow Leopard) and more recently with the anouncement of 64-bit support in iOS, we needed a solution to support both worlds.

We have introduced 6 new types to make this possible:

Native Type Legacy (32-bit) CIL Type New (32/64-bit) CIL Type
NSInteger System.Int32 System.nint
NSUInteger System.UInt32 System.nuint
CGFloat System.Single System.nfloat
CGSize System.Drawing.SizeF CoreGraphics.CGSize
CGPoint System.Drawing.PointF CoreGraphics.CGPoint
CGRect System.Drawing.RectangleF CoreGraphics.CGRect

In the Classic assembly, the System.Drawing types are backed by the 32-bit System.Single type. In the Unified assemblies, the CoreGraphics types are backed by 32/64-bit System.nfloat type (ObjCRuntime.nfloat in .NET).

Enums

Enums are handled specially. Most native enums are backed by NSInteger or NSUInteger. Unfortunately in C#, the backing type of an enum may only be one of the primitive integral C# types. Thus, an enum cannot be backed by System.nint or System.nuint.

The convention is to make all enums that are backed natively by NSInteger or NSUInteger backed by a 64-bit primitive integral C# type (long or ulong) and then annotated with the [Native] attribute. This ensures that API is identical between the 32/64-bit assemblies but also hints to the code generator that Objective-C runtime calls should first cast the enum to a System.nint or System.nuint.

Native Enum Definition

typedef NS_ENUM(NSUInteger, NSTableViewDropOperation) {
	NSTableViewDropOn,
	NSTableViewDropAbove
};

Managed Enum Definition

[Native]
public enum NSTableViewDropOperation : nuint {
	DropOn,
	DropAbove
}

When dealing with enums in P/Invokes, one must never pass such an enum directly. The P/Invoke signature should take a System.nint or System.nuint and a wrapper API must cast the enum manually (as mentioned above, this is handled automatically for Objective-C APIs by the generator).

Objective-C Binding

interface Fooable {
	[Export ("foo:")]
	void Foo (NSTableViewDropOperation dropOp);
}

C Binding

public partial class Fooable {
	[DllImport ("foo")]
	static extern void Foo (nuint dropOp);

	public static void Foo (NSTableViewDropOperation dropOp)
	{
		Foo ((nuint)(ulong)dropOp);
	}
}

#define

There are a few preprocessor variables that can be used within sources for conditional compilation:

Variable Description
MONOMAC defined for Xamarin.Mac builds; not defined for Xamarin.iOS
ARCH_32 defined when the target architecture is 32-bit; this will be defined for Classic and the Unified 32-bit assemblies
ARCH_64 defined when the target architecture is 64-bit; this will be defined only for the Unified 64-bit assembly
COREBUILD defined when building the intermediate core.dll assembly against which the code generator will produce bindings

For example, to build an API for all of iOS but only 64-bit OS X (Xamarin.Mac):

#if !MONOMAC || (MONOMAC && ARCH_64)
...
#endif

Source Localization

Coming soon!

See Localization Wiki for more details on our localization process

or the OneLocBuild Wiki for information on OneLocBuild.