Граф коммитов

940 Коммитов

Автор SHA1 Сообщение Дата
Alex Soto 7dab51130f Merge pull request #714 from spouliot/messages-abstract-fix
[messages] MSMessageLayout should be an abstract type
2016-08-30 20:11:25 -05:00
Sebastien Pouliot 7e1529eed0 [messages] MSMessageLayout should be an abstract type
> The MSMessageLayout class is an abstract base class that defines

reference:
https://developer.apple.com/reference/messages/msmessagelayout?language=objc
2016-08-30 20:13:57 -04:00
Alex Soto 301ac17465 [Intents] Fix bug 43889 - INIntent and INIntentResponse should be abstract (#713)
https://bugzilla.xamarin.com/show_bug.cgi?id=43889
2016-08-30 19:17:20 -04:00
Alex Soto 1a16d1c923 [UserNotification] Fix bug 43787 localizedUserNotificationStringForKey:arguments: not bound properly (#712)
https://bugzilla.xamarin.com/show_bug.cgi?id=43787
2016-08-30 19:16:32 -04:00
Sebastien Pouliot a2899b842c [cloudkit] Fix some missing .ctor (breaking changes) (#711)
Enabling CloudKit on watchOS required to remove some default .ctor that
watchOS does not _support_.

This commit fix this by either

* replacing the default .ctor with something that works across all
  platforms (best); or

* removing the default .ctor only on watchOS;

The commit also mark as abstract three existing types for watchOS (and
for XAMCORE_4_0) that were found reviewing the bindings.
2016-08-30 19:14:48 -04:00
Sebastien Pouliot 974ea0b792 Merge branch 'cycle8' into xcode8 2016-08-30 15:40:58 -04:00
Alex Soto 209f4f3709 [GameplayKit] Update from Xcode8 Beta 1 to Beta 6 (#689)
Runtime
- Added support for Vector2d, Vector3d and Vector4d SIMD types
- Added support for GKBox, GKQuad and GKTriangle SIMD types

GameplayKit
- Apple introduced GKQuadTreeNode and GKQuadTree in Xcode 7.1 and
  removed those types in a later Xcode (7.2?) but we kept them around.
  Now apple introduced again both types but renamed them to GKQuadtreeNode
  and GKQuadtree (lowercase t), this is a breaking change and since we do
  care about binary compat we are just changing the registration name and
  keeping the same managed name deprecating old methods and introducing
  the new ones.
- Added tests for new SIMD types
2016-08-30 15:32:46 -04:00
Sebastien Pouliot f74a7a7911 [messageui] Review (and add test) the enum breaking change from Apple. Fixes #42682 (#710)
Xcode8 SDK changed untyped enums (always 32 bits) into NSInteger. In this
case we can continue with the existing API (and ignore them in xtro)

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=42682
2016-08-30 14:26:49 -04:00
Rolf Bjarne Kvinge cbfd83be92 [xharness] Make sure a project reference's Name matches the file name of the reference. Fixes #43181. (#709)
Apparently XS can't find referenced project (to build them) otherwise.

It works fine when building using xbuild though.

https://bugzilla.xamarin.com/show_bug.cgi?id=43181
2016-08-30 13:32:32 -04:00
Sebastien Pouliot eef1c7a7e0 Bump mono to the latest 4.6 revision (#708) 2016-08-30 11:27:52 -04:00
Chris Hamons a43115a85e [XM] Fix native dependency processing by mmp when linker is disabled (#613)
* [XM] Fix native dependency processing by mmp when linker is disabled

- https://bugzilla.xamarin.com/show_bug.cgi?id=43364
- Fixed via a hack for now. Fixed https://bugzilla.xamarin.com/show_bug.cgi?id=43419 to clean up later
- Added null check in ProcessDLLImports due to facades
2016-08-30 08:45:03 -04:00
Sebastien Pouliot 1d5bbedc61 Bump maccore to remove classic (monotouch.dll and friends) support from XI (#704)
Also stop processing the API diff for classic assemblies
2016-08-30 08:14:29 -04:00
Sebastien Pouliot 3c28e427ce [tests][xtro] Update data files (#705) 2016-08-29 22:06:14 -04:00
Sebastien Pouliot 7149661251 [mtouch|mmp] Add missing frameworks with platform versions (#703)
note: AVFoundation is commented on watchOS 3 as this breaks the static
registrar .a helper built for watchOS.

AVFoundation does a file check to enable some types - but the watchSimulator
include that file, leading to compilation errors later (missing CMTime.h)

	#if TARGET_OS_WATCH
	#if ! __has_include(<AVFoundation/AVAnimation.h>)
	#define AVF_IS_WATCHOS_SDK 1
	#endif
	#endif
2016-08-29 19:22:34 -04:00
Sebastien Pouliot 893c9fa3cd [intentsui] Simplify bindings for INImage_IntentsUI (#700)
Remove use of manual code by moving INImage_IntentsUI directly inside
intents.cs. Final API remains identical and this makes xtro pick them
up correctly.
2016-08-29 16:48:13 -04:00
Sebastien Pouliot 85f884c94d [corebluetooth] Update availability attributes for some obsolete (removed) API (#702)
references:
!extra-protocol-member! unexpected selector CBCentralManagerDelegate::centralManager:didRetrieveConnectedPeripherals: found
!extra-protocol-member! unexpected selector CBCentralManagerDelegate::centralManager:didRetrievePeripherals: found
!extra-protocol-member! unexpected selector CBPeripheralDelegate::peripheralDidInvalidateServices: found
2016-08-29 16:48:03 -04:00
Rolf Bjarne Kvinge 923ff95d0d [CoreAnimation] Remove [Protocol] from CAAnimationDelegate. Fixes #43825. (#698)
See cd96e255 for a detailed description, it's the same issue with
a different type.

https://bugzilla.xamarin.com/show_bug.cgi?id=43825
2016-08-29 11:14:42 -04:00
Sebastien Pouliot c358c2efe6 [metal] Fix API based on api-diff and xtro (#699)
It turns out `setDepthClipMode` was removed in Xcode 8, so this needs
some manual code to maintain binary compatibility

references:
!extra-protocol-member! unexpected selector MTLRenderCommandEncoder::setDepthClipMode: found
!unknown-native-enum! MTLPrimitiveTopologyClass bound
2016-08-29 11:04:42 -04:00
Manuel de la Pena d5bb9326ec [Metal] Update bindings for Xcode 8. (#663) 2016-08-29 08:21:06 -04:00
Sebastien Pouliot 65ea856d33 [corelocation] Fix CLHeading/CLLocation Description method API for exiting profiles (#693) 2016-08-29 08:18:43 -04:00
Rolf Bjarne Kvinge 5528ba069b Take target type into account when caching delegates for blocks. Fixes #34513. (#696)
Native code can provide the same native method for blocks
with different managed signatures, so it's not enough
to hash by method address, we need to take the target type
of the delegate into account as well.

https://bugzilla.xamarin.com/show_bug.cgi?id=34513
2016-08-29 08:18:27 -04:00
Alex Soto 88912d0777 Merge pull request #692 from spouliot/tvos-scenekit
[tvos][scenekit] Fix binary compatibility with earlier versions (even if Apple removed some API)
2016-08-28 14:12:48 -05:00
Alex Soto 109e65cbaf Merge pull request #695 from spouliot/xtro-update-2
[tests][xtro] Update data files
2016-08-28 13:49:30 -05:00
Alex Soto b90c5d8a6d Merge pull request #694 from spouliot/tvos-mediaplayer
[tvos][mediaplayer] Enable MPContentItem on tvOS
2016-08-28 13:48:24 -05:00
Sebastien Pouliot b5638fce4d [tests][xtro] Update data files 2016-08-28 12:18:18 -04:00
Sebastien Pouliot 6b30fd2c9c [tvos][mediaplayer] Enable MPContentItem on tvOS
No news from Apple on the original rdar but the issue was fixed in Xcode
8 beta 6 (and likely earlier betas)

> MP_EXTERN_CLASS_AVAILABLE(3_0)
> @interface MPMediaItemArtwork : NSObject

which makes it possible to enable the type (as it does nor depend on
other, unavailable, types).

references:
* rdar://24982126
* https://trello.com/c/2gxuFbeS
2016-08-28 12:07:43 -04:00
Sebastien Pouliot c2e6794411 [tvos][scenekit] Fix binary compatibility with earlier versions (even if Apple removed some API) 2016-08-28 11:29:35 -04:00
Alex Soto 7b92e3c468 Merge pull request #691 from spouliot/tvos-gamekit-fix
[tvos][gamekit] GKPeerPickerConnectionType needs to stay in the current tvOS profile (for binary compatibility)
2016-08-27 12:54:10 -05:00
Sebastien Pouliot 42807bcc09 [metalperformanceshaders] Remove [DesignatedInitializer] from MPSMatrixMultiplication (#690)
It's the only one, so it's kind of designated, but it's not marked as
such in the header files and it's better matching them (xtro test wise)

reference:
!extra-designated-initializer! MPSMatrixMultiplication::initWithDevice:transposeLeft:transposeRight:resultRows:resultColumns:interiorColumns:alpha:beta: is incorrectly decorated with an [DesignatedInitializer] attribute
2016-08-27 12:52:59 -04:00
Sebastien Pouliot 59982c91cb [tvos][gamekit] GKPeerPickerConnectionType needs to stay in the current tvOS profile (for binary compatibility) 2016-08-27 12:51:41 -04:00
Alex Soto 99cf87be0d Merge pull request #688 from spouliot/safariservices-di-fix
[safariservices] Add missing [DesignatedInitializer] on SFSafariViewController
2016-08-27 00:55:52 -05:00
Sebastien Pouliot fbd407c9cb [safariservices] Add missing [DesignatedInitializer] on SFSafariViewController
reference:
!missing-designated-initializer! SFSafariViewController::initWithURL:entersReaderIfAvailable: is missing an [DesignatedInitializer] attribute
2016-08-26 20:55:12 -04:00
Sebastien Pouliot d85caeffde [tvos][avfoundation] Adjust API for tvOS (#687)
Some types were removed in tvOS 10, including:

!unknown-protocol! AVAssetDownloadDelegate bound
!unknown-type! AVAssetDownloadTask bound
!unknown-type! AVAssetDownloadURLSession bound
!unknown-type! AVAudioInputNode bound

and we're replacing them with stubs so our binaries won't contain any of
the selectors that could be rejected by Apple on the app store

Some (new) fields are also not part of tvOS (and were not in iOS either)

!unknown-field! AVVideoCodecAppleProRes422 bound
!unknown-field! AVVideoCodecAppleProRes4444 bound
!unknown-field! AVVideoColorPrimaries_EBU_3213 bound
!unknown-field! AVVideoTransferFunction_SMPTE_240M_1995 bound
!unknown-field! AVVideoYCbCrMatrix_SMPTE_240M_1995 bound

* [tests][xtro] Many categories are not marked as not available on tvOS, even if the type being extended is not available. This adds entries for them so only missing AV* API remains in tvos.unclassified
2016-08-26 20:40:01 -04:00
Chris Hamons 9fdd40d114 [XM] Missing NSUserNotification bindings (#686)
- https://bugzilla.xamarin.com/show_bug.cgi?id=38118
2016-08-26 15:38:22 -05:00
Chris Hamons ab7477a0d0 [XM] Add NSOpenGLLayer binding (#684)
- https://bugzilla.xamarin.com/show_bug.cgi?id=43542
- Quick hand test here - https://gist.github.com/chamons/05f94781ec910869343f114fe7b4edbe
2016-08-26 14:40:52 -04:00
Chris Hamons 3bdb0e37a6 [XM] More xtro-sharpie fixes (#682) 2016-08-26 12:32:45 -05:00
Rolf Bjarne Kvinge 36ea73ca65 Share the same block descriptors between copies of a block. Fixes #43592. (#683)
In bug #43592 the following occurs:

* App calls an API that takes a block.
* We create a stack-based ObjC block based on the delegate the app provided.
  This block has a pointer to a block description, describing the block
  in question (including the signature of the block, as an ObjC-type
  encoded string). We allocate a new block description for every block.
* Apple's API stores the pointer to the signature string somewhere.
* Apple calls _Block_copy to get a heap-based block.
* We create a heap-based block, and copy the entire description into the
  new heap-based block (including a copy of the signature).
* Apple returns from the API, and then we free the stack-based block
  (and the descriptor, and thus the signature string in the descriptor).
* Apple uses the pointer to the signature stored previously to investigate
  the signature of the block, and crashes because this signature has been
  freed.

The assumption in Apple's code is that the description will never be freed,
which is true for any Xcode project (clang will always be able to create the
block description at compile-time and emit it in the binary, which means the
memory will never be freed). We could potentially do the same thing in the
static registrar, but we'd still need a solution when using the dynamic
registrar.

To fix this instead of copying the entire description structure when creating
a heap-based block from the stack-based block, we make the description ref-
counted, and just use the same description in the heap-based block.

The signature will now stay in memory until both the heap-based and stack-
based blocks have been freed, and we hope Apple doesn't have any API that
needs the signature after all the blocks for that signature have been freed.

https://bugzilla.xamarin.com/show_bug.cgi?id=43592
2016-08-26 19:22:38 +02:00
Chris Hamons bc9c25de72 [XM] Add missing SafariServices binding (#681) 2016-08-26 10:30:45 -05:00
Rolf Bjarne Kvinge a617bee08f [xharness] Crashing is not OK. (#680) 2016-08-26 09:12:44 -04:00
Sebastien Pouliot 6d5beb61cb Merge branch 'cycle8' into xcode8 2016-08-26 08:19:33 -04:00
Sebastien Pouliot 2bcd40054f [linker] Ensure we do not devirtualize methods that needs to be called from a base class to satisfy an interface. Fixes #34308 (#675)
Update unit tests to catch this case and be more precise in others.

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=43408
2016-08-26 08:17:01 -04:00
Rolf Bjarne Kvinge a3a8733d30 Bump [watch-]mono to get fixes for #43357 and #43216. (#679) 2016-08-26 12:55:37 +02:00
Rolf Bjarne Kvinge cd96e255e4 [CoreAnimation] Re-mark CALayerDelegate as informal to fix #43585. (#677)
CALayerDelegate was an informal protocol in earlier versions
of iOS, but elevated to protocol in iOS 10 [1]. Unfortunately this causes
problems with the static registrar, since it needs to know if a protocol
is informal or not to generate the right code, but there's no way
with the current set of attributes we have to express the fact that
CALayerDelegate was an informal protocol until iOS 10, so the static
registrar don't know to treat it correctly when building with earlier
SDKs.

This is the error that results when using CALayerDelegate with an earlier SDK:

    /work/monotouch-samples/ZoomingPdfViewer/obj/iPhone/Debug/mtouch-cache/registrar.m:1336:51: error: no type or protocol named 'CALayerDelegate'
    @interface ZoomingPdfViewer_TiledPdfView : UIView<CALayerDelegate> {
                                                      ^
So we temporarily revert the change to make CALayerDelegate formal,
until we have enough metadata for the static registrar to do the
right thing (which is filed as bug #43780 [2])

[1] https://github.com/xamarin/xamarin-macios/commit/0178aa04
[2] https://bugzilla.xamarin.com/show_bug.cgi?id=43780

https://bugzilla.xamarin.com/show_bug.cgi?id=43585
2016-08-26 11:38:05 +02:00
Jeffrey Stedfast 73a1d74cab Cycle8 codesign simulator (#674)
* [msbuild] Always codesign iOS frameworks (#642)

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43264

* [msbuild] Always codesign *.dylibs, even for Simulator builds (#672)

Another fix for https://bugzilla.xamarin.com/show_bug.cgi?id=43264
2016-08-25 18:22:20 -04:00
Sebastien Pouliot 144d96999b Merge branch 'cycle8' into xcode8 2016-08-25 14:08:23 -04:00
Chris Hamons 3ad2491006 Fixup C8 static registrar to work w\ Xcode 8 (#647)
* Fix static registrar on 10.12 by teaching it that QTKit is dead (#472)
* Rip out all 64-bit registration in 32-bit XM.
2016-08-25 14:03:43 -04:00
Sebastien Pouliot df32a6663b [watchos] Ena[scenekit]ble the last missing API from SceneKit now that AVFoundation is enabled in watchOS (#668) 2016-08-25 14:02:20 -04:00
Chris Hamons 82882b70f7 [XM] Add CoreLocation APIs that exist on macOS (#671)
- https://bugzilla.xamarin.com/show_bug.cgi?id=43593
2016-08-25 13:46:55 -04:00
Sebastien Pouliot 0656de444b [watchos][spritekit] Enable the last missing API from SpriteKit now that AVFoundation is enabled in watchOS (#669) 2016-08-25 13:02:26 -04:00
Jeffrey Stedfast 791423f4f1 [msbuild] Add the Insights API Key to the iOS archive manifest (#656)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=43489
2016-08-25 11:45:55 -04:00