This is a static selector that needs to be overridden, which is not the
usual pattern in C#. We re-define it using [New] on subclasses.
Unit tests added for all NSDimension subclasses.
reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=43444
Also fix warnings printed while executing:
> CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.
> CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.
It's marked as iOS only
> HK_CLASS_AVAILABLE_IOS_ONLY(10_0)
even if some other API, marked as available on watchOS 3, are exposing
the type. Those API are now removed from the watch platform assembly.
From Apple:
You want to use this API on watchOS that we explicitly decided to restrict this to iOS only.
Thank you for your feedback. Engineering has determined that this issue behaves as intended.
reference:
* radar #27865614
* https://trello.com/c/4soJeYEr
* ApiCMAttachmentTest
[FAIL] ApiCMAttachmentTest.CheckFailAttachments : CGColorConverter.Handle
* SKNode added conformance to new (in iOS10) UIFocus protocol.
[FAIL] Selector not found for SpriteKit.SKNode : didUpdateFocusInContext:withAnimationCoordinator:
[FAIL] Selector not found for SpriteKit.SKNode : setNeedsFocusUpdate
[FAIL] Selector not found for SpriteKit.SKNode : shouldUpdateFocusInContext:
[FAIL] Selector not found for SpriteKit.SKNode : updateFocusIfNeeded
[FAIL] Selector not found for SpriteKit.SKNode : preferredFocusedView
* HKWorkoutEvent conformance to NSCopying is new in iOS10
[FAIL] Selector not found for HealthKit.HKWorkoutEvent : copyWithZone:
* HKDocumentType was added in iOS 10 (not iOS 8) and not watchOS 2 or 3
ref: +HK_CLASS_AVAILABLE_IOS_ONLY(10_0)
[FAIL] iOSApiProtocolTest.ApiProtocolTest.Coding : ObjCRuntime.RuntimeException : Wrapper type 'HealthKit.HKDocumentType' is missing its native ObjectiveC class 'HKDocumentType'.
reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=43329
It was disable as it crashed our test suite and the crash report from
the simulators were not very helpful. The issue becomes clear from
device builds...
Application Specific Information:
BUG IN CLIENT OF LIBDISPATCH: dispatch_barrier_sync called on queue already owned by current thread
Abort Cause 6244246656
Filtered syslog:
None found
Thread 0 name: tid_a07 Dispatch queue: CTCallCenter
Thread 0 Crashed:
0 libdispatch.dylib 0x00000001839fdf60 _dispatch_barrier_sync_f_slow + 596
1 CoreTelephony 0x000000018756e7ec -[CTCallCenter callEventHandler] + 128
2 CoreTelephony 0x000000018756e7ec -[CTCallCenter callEventHandler] + 128
3 CoreTelephony 0x000000018756f51c __27-[CTCallCenter description]_block_invoke + 60
4 CoreTelephony 0x000000018756f79c ___ZN8dispatch9sync_implIU13block_pointerFP8NSStringvEEENSt3__15decayIDTclfp0_EEE4typeEP16dispatch_queue_sOT_NS5_17integral_constantIbLb0EEE_block_invoke + 32
5 libdispatch.dylib 0x00000001839ed1c0 _dispatch_client_callout + 16
6 libdispatch.dylib 0x00000001839fa860 _dispatch_barrier_sync_f_invoke + 84
7 libdispatch.dylib 0x00000001839fde9c _dispatch_barrier_sync_f_slow + 400
8 CoreTelephony 0x000000018756f4d0 -[CTCallCenter description] + 128
9 introspection 0x000000010192b7b8 wrapper_managed_to_native_ObjCRuntime_Messaging_IntPtr_objc_msgSend_intptr_intptr (/<unknown>:1)
10 introspection 0x00000001012dbff8 Foundation_NSObject_get_Description (NSObject.g.cs:717)
11 introspection 0x00000001012d8e34 Foundation_NSObject_ToString (NSObject2.cs:703)
so calling `description` is broken and we need to exclude this from our
introspection tests for the type.
* [C8] Bump to latest Mono 4.6.0 commit
Brings in the netstandard updates from https://github.com/mono/mono/pull/3394
We also had to add a new assembly System.IdentityModel.dll to the mobile profiles while doing that work.
* Add System.IdentityModel to Sdk assemblies
Fixes the following mtouch test failure:
```
Xamarin.Linker.SdkTest.iOS_Classic : BCL
Expected:
But was: < "System.IdentityModel" >
at NUnit.Framework.CollectionAssert.IsEmpty (IEnumerable collection, System.String message, System.Object[] args) <0x47bec88 + 0x00047> in :0
at NUnit.Framework.CollectionAssert.IsEmpty (IEnumerable collection, System.String message) <0x47bec58 + 0x0001f> in :0
at Xamarin.Linker.SdkTest.BCL (System.String path) <0x47bccf0 + 0x003f3> in :0
at Xamarin.Linker.SdkTest.iOS_Classic () <0x47bcc50 + 0x0001b> in :0
```
- Linking breaks extensions for as long as we have the "extensions must be use static registrar" hack.
- So let's ignore it with a warning. Better that random brokeness.
- https://bugzilla.xamarin.com/show_bug.cgi?id=43197
Apple removed CGColorConverter even if it was publicly exposed in iOS 9.3,
not that I recall any API that consumed it...
It was replaced by a new, very close, type named CGColorConversionInfo and
the existing code and tests were updated to the new API.
So for `CGColorConverter` we're
* iOS: Obsoleted + code removal
* tvOS: Obsoleted + code removal
* watchOS: the API can be removed as it was not exposed in a stable release
* macOS: it was not enabled (did not work)
* [tests] Adjust ApiCMAttachmentTest so it knows how to create the new CGColorConversionInfo type
Notes:
1. Availability macros were added for tvOS and watchOS but this framework
was not added to those platforms.
2. Xcode 8 beta 1 added new constants
+// Credential types
+#define kLACredentialTypePasscode -1
+#define kLACredentialTypePassphrase -2
+#define kLACredentialCTKPIN -3
which don't match the existing LACredentialType enum -> rdar #27805510
ref: https://trello.com/c/pikF1BP2/55-27805510-lacredentialtype-enum-and-lacredentialtype-constants-don-t-match