diff --git a/Make.config b/Make.config index 9878168d1609..0f3b96f2eb47 100644 --- a/Make.config +++ b/Make.config @@ -111,9 +111,9 @@ WATCHOS_NUGET_VERSION_NO_METADATA=$(WATCHOS_NUGET_VERSION)-$(NUGET_PRERELEASE_ID WATCHOS_NUGET_VERSION_FULL=$(WATCHOS_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA) # Xcode version should have both a major and a minor version (even if the minor version is 0) -XCODE_VERSION=11.4 -XCODE_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_11.4.xip -XCODE_DEVELOPER_ROOT=/Applications/Xcode114.app/Contents/Developer +XCODE_VERSION=11.5 +XCODE_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_11.5.xip +XCODE_DEVELOPER_ROOT=/Applications/Xcode_11.5.0.app/Contents/Developer XCODE_PRODUCT_BUILD_VERSION:=$(shell /usr/libexec/PlistBuddy -c 'Print :ProductBuildVersion' $(XCODE_DEVELOPER_ROOT)/../version.plist) # Mono version embedded in XI/XM (NEEDED_MONO_VERSION/BRANCH) are specified in mk/mono.mk diff --git a/Make.versions b/Make.versions index b5d077c6adda..84dafa7d7f33 100644 --- a/Make.versions +++ b/Make.versions @@ -48,8 +48,8 @@ # line changed in git). # -IOS_PACKAGE_VERSION=13.21.0.$(IOS_COMMIT_DISTANCE) -MAC_PACKAGE_VERSION=6.21.0.$(MAC_COMMIT_DISTANCE) +IOS_PACKAGE_VERSION=13.21.1.$(IOS_COMMIT_DISTANCE) +MAC_PACKAGE_VERSION=6.21.1.$(MAC_COMMIT_DISTANCE) # # ** NuGet package version numbers ** @@ -66,7 +66,7 @@ MAC_PACKAGE_VERSION=6.21.0.$(MAC_COMMIT_DISTANCE) # WARNING: Do **not** use versions higher than the available Xcode SDK or else we will have issues with mtouch (See https://github.com/xamarin/xamarin-macios/issues/7705) # When bumping the major macOS version in MACOS_NUGET_VERSION also update the macOS version where we execute on bots in jenkins/Jenkinsfile (in the 'node' element) -IOS_NUGET_VERSION=13.4.100 +IOS_NUGET_VERSION=13.5.100 TVOS_NUGET_VERSION=13.4.100 WATCHOS_NUGET_VERSION=6.2.100 MACOS_NUGET_VERSION=10.15.100 diff --git a/Versions-ios.plist.in b/Versions-ios.plist.in index 16cb651a83e1..0cbeaaeb7721 100644 --- a/Versions-ios.plist.in +++ b/Versions-ios.plist.in @@ -38,6 +38,7 @@ 13.2 13.3 13.4 + 13.5 tvOS diff --git a/mk/xamarin.mk b/mk/xamarin.mk index 654d38b43cfd..8736c060a929 100644 --- a/mk/xamarin.mk +++ b/mk/xamarin.mk @@ -7,7 +7,7 @@ MONO_BRANCH := $(shell cd $(MONO_PATH) 2> /dev/null && git symbolic-ref --sho endif ifdef ENABLE_XAMARIN -NEEDED_MACCORE_VERSION := ad1696d6f33badd34f930e4ce1be9185b5a36dd7 +NEEDED_MACCORE_VERSION := 4bfce648475f8db1d93b8a9f51a69ad0b8b55930 NEEDED_MACCORE_BRANCH := master MACCORE_DIRECTORY := maccore diff --git a/src/intents.cs b/src/intents.cs index f47cb79b6680..950c9acf2538 100644 --- a/src/intents.cs +++ b/src/intents.cs @@ -1471,6 +1471,8 @@ public enum INMediaItemType : long { Music, [Watch (6,0), iOS (13,0)] AlgorithmicRadioStation, + [Watch (6,2,1), iOS (13,4,1)] + News, } [Watch (5,0), NoMac, iOS (12,0)] diff --git a/tests/introspection/ApiAvailabilityTest.cs b/tests/introspection/ApiAvailabilityTest.cs index 4fb2f6954943..14d84001373f 100644 --- a/tests/introspection/ApiAvailabilityTest.cs +++ b/tests/introspection/ApiAvailabilityTest.cs @@ -47,6 +47,8 @@ public ApiAvailabilityTest () }; #elif __WATCHOS__ Minimum = new Version (2,0); + // Need to special case watchOS 'Maximum' version for OS minor subversions (can't change Constants.SdkVersion) + Maximum = new Version (6,2,5); Filter = (AvailabilityBaseAttribute arg) => { return (arg.AvailabilityKind != AvailabilityKind.Introduced) || (arg.Platform != PlatformName.WatchOS); }; @@ -54,7 +56,7 @@ public ApiAvailabilityTest () Minimum = new Version (10,9); // Need to special case macOS 'Maximum' version for OS minor subversions (can't change Constants.SdkVersion) // Please comment the code below if needed - Maximum = new Version (10,15,4); + Maximum = new Version (10,15,5); Filter = (AvailabilityBaseAttribute arg) => { return (arg.AvailabilityKind != AvailabilityKind.Introduced) || (arg.Platform != PlatformName.MacOSX); }; diff --git a/tests/xtro-sharpie/iOS-ExposureNotification.ignore b/tests/xtro-sharpie/iOS-ExposureNotification.ignore new file mode 100644 index 000000000000..13cd94af1852 --- /dev/null +++ b/tests/xtro-sharpie/iOS-ExposureNotification.ignore @@ -0,0 +1,65 @@ +!missing-enum! ENAuthorizationStatus not bound +!missing-enum! ENErrorCode not bound +!missing-enum! ENStatus not bound +!missing-field! ENErrorDomain not bound +!missing-selector! +ENManager::authorizationStatus not bound +!missing-selector! ENExposureConfiguration::attenuationLevelValues not bound +!missing-selector! ENExposureConfiguration::attenuationWeight not bound +!missing-selector! ENExposureConfiguration::daysSinceLastExposureLevelValues not bound +!missing-selector! ENExposureConfiguration::daysSinceLastExposureWeight not bound +!missing-selector! ENExposureConfiguration::durationLevelValues not bound +!missing-selector! ENExposureConfiguration::durationWeight not bound +!missing-selector! ENExposureConfiguration::metadata not bound +!missing-selector! ENExposureConfiguration::minimumRiskScore not bound +!missing-selector! ENExposureConfiguration::setAttenuationLevelValues: not bound +!missing-selector! ENExposureConfiguration::setAttenuationWeight: not bound +!missing-selector! ENExposureConfiguration::setDaysSinceLastExposureLevelValues: not bound +!missing-selector! ENExposureConfiguration::setDaysSinceLastExposureWeight: not bound +!missing-selector! ENExposureConfiguration::setDurationLevelValues: not bound +!missing-selector! ENExposureConfiguration::setDurationWeight: not bound +!missing-selector! ENExposureConfiguration::setMetadata: not bound +!missing-selector! ENExposureConfiguration::setMinimumRiskScore: not bound +!missing-selector! ENExposureConfiguration::setTransmissionRiskLevelValues: not bound +!missing-selector! ENExposureConfiguration::setTransmissionRiskWeight: not bound +!missing-selector! ENExposureConfiguration::transmissionRiskLevelValues not bound +!missing-selector! ENExposureConfiguration::transmissionRiskWeight not bound +!missing-selector! ENExposureDetectionSummary::attenuationDurations not bound +!missing-selector! ENExposureDetectionSummary::daysSinceLastExposure not bound +!missing-selector! ENExposureDetectionSummary::matchedKeyCount not bound +!missing-selector! ENExposureDetectionSummary::maximumRiskScore not bound +!missing-selector! ENExposureDetectionSummary::metadata not bound +!missing-selector! ENExposureDetectionSummary::setAttenuationDurations: not bound +!missing-selector! ENExposureInfo::attenuationDurations not bound +!missing-selector! ENExposureInfo::attenuationValue not bound +!missing-selector! ENExposureInfo::date not bound +!missing-selector! ENExposureInfo::duration not bound +!missing-selector! ENExposureInfo::metadata not bound +!missing-selector! ENExposureInfo::setAttenuationDurations: not bound +!missing-selector! ENExposureInfo::totalRiskScore not bound +!missing-selector! ENExposureInfo::transmissionRiskLevel not bound +!missing-selector! ENManager::activateWithCompletionHandler: not bound +!missing-selector! ENManager::detectExposuresWithConfiguration:diagnosisKeyURLs:completionHandler: not bound +!missing-selector! ENManager::dispatchQueue not bound +!missing-selector! ENManager::exposureNotificationEnabled not bound +!missing-selector! ENManager::exposureNotificationStatus not bound +!missing-selector! ENManager::getDiagnosisKeysWithCompletionHandler: not bound +!missing-selector! ENManager::getExposureInfoFromSummary:userExplanation:completionHandler: not bound +!missing-selector! ENManager::getTestDiagnosisKeysWithCompletionHandler: not bound +!missing-selector! ENManager::invalidate not bound +!missing-selector! ENManager::invalidationHandler not bound +!missing-selector! ENManager::setDispatchQueue: not bound +!missing-selector! ENManager::setExposureNotificationEnabled:completionHandler: not bound +!missing-selector! ENManager::setInvalidationHandler: not bound +!missing-selector! ENTemporaryExposureKey::keyData not bound +!missing-selector! ENTemporaryExposureKey::rollingPeriod not bound +!missing-selector! ENTemporaryExposureKey::rollingStartNumber not bound +!missing-selector! ENTemporaryExposureKey::setKeyData: not bound +!missing-selector! ENTemporaryExposureKey::setRollingPeriod: not bound +!missing-selector! ENTemporaryExposureKey::setRollingStartNumber: not bound +!missing-selector! ENTemporaryExposureKey::setTransmissionRiskLevel: not bound +!missing-selector! ENTemporaryExposureKey::transmissionRiskLevel not bound +!missing-type! ENExposureConfiguration not bound +!missing-type! ENExposureDetectionSummary not bound +!missing-type! ENExposureInfo not bound +!missing-type! ENManager not bound +!missing-type! ENTemporaryExposureKey not bound diff --git a/tools/devops/Makefile b/tools/devops/Makefile index e42137e1d5db..3401e86c4149 100644 --- a/tools/devops/Makefile +++ b/tools/devops/Makefile @@ -3,8 +3,7 @@ include $(TOP)/Make.config device-tests-provisioning.csx: device-tests-provisioning.csx.in Makefile $(TOP)/Make.config $(Q_GEN) sed \ - -e 's#@XCODE_VERSION@#$(XCODE_VERSION)#g' \ - -e 's#@XCODE_DEVELOPER_ROOT@#$(XCODE_DEVELOPER_ROOT)#g' \ + -e 's#@XCODE_XIP_NAME@#$(notdir $(XCODE_URL))#g' \ -e 's#@XI_PACKAGE@#$(XI_PACKAGE)#g' \ -e 's#@MONO_PACKAGE@#$(MIN_MONO_URL)#g' \ -e 's#@VS_PACKAGE@#$(MIN_VISUAL_STUDIO_URL)#g' \ diff --git a/tools/devops/device-tests-provisioning.csx.in b/tools/devops/device-tests-provisioning.csx.in index 43c322aab87c..8ab35ecbd282 100644 --- a/tools/devops/device-tests-provisioning.csx.in +++ b/tools/devops/device-tests-provisioning.csx.in @@ -1,12 +1,14 @@ #r "_provisionator/provisionator.dll" using System.IO; +using System.Reflection; using System.Linq; using static Xamarin.Provisioning.ProvisioningScript; -var xcodePath = Path.GetDirectoryName (Path.GetDirectoryName ("@XCODE_DEVELOPER_ROOT@")); -Xcode ("@XCODE_VERSION@").XcodeSelect (allowUntrusted: true, allowSymlink: true, symlinkTarget: xcodePath); +// Provision Xcode using the xip name declared in Make.config +var xcodeItem = GetXcodeItem ("@XCODE_XIP_NAME@"); +Item (xcodeItem).XcodeSelect (allowUntrusted: true); // provisionator knows how to deal with this items Item ("@MONO_PACKAGE@"); @@ -21,3 +23,25 @@ void BrewPackage (string name) // All Macs provisioned by Xamarin, VSEng, or DDFUN should have brew by default! Item (name).Action (i => Exec ("brew", "install", i.Name)); } + +XreItem GetXcodeItem (string xipFileName) +{ + var items = (XreItem []) Enum.GetValues (typeof (XreItem)); + var xreItemType = typeof (XreItem); + var itemAttrType = typeof (Xamarin.Provisioning.Model.ItemAttribute); + + foreach (var item in items) { + var attr = xreItemType + .GetField (item.ToString ()) + .GetCustomAttributes (itemAttrType, false) + ?.Cast () + .FirstOrDefault (a => a.Uri.EndsWith (xipFileName, StringComparison.Ordinal)); + + if (attr == null) + continue; + + return item; + } + + throw new Xamarin.Provisioning.ProvisioningException ($"'{xipFileName}' not found in 'XreItem' members."); +}