xamarin-macios/builds/Versions-MacCatalyst.plist.in

131 строка
3.7 KiB
Plaintext
Исходник Постоянная ссылка Обычный вид История

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>MonoVersion</key>
<string>@MONO_VERSION@</string>
<key>KnownVersions</key>
<dict>
<key>MacCatalyst</key>
<array>
<string>15.0</string>
<string>15.2</string>
<string>15.4</string>
<string>16.1</string>
<string>16.2</string>
<string>16.4</string>
<string>17.0</string>
<string>17.2</string>
<string>17.4</string>
<string>17.5</string>
2024-06-10 22:29:43 +03:00
<string>18.0</string>
[dotnet] Differentiate between "OS version we support as TargetPlatformVersion" and "OS version we support or have supported". (#19882) The `SdkSupportedTargetPlatformVersion` item group is used for (at least) two things: 1. Generate the `_OR_GREATER` preprocessing symbols: https://github.com/dotnet/sdk/blob/bfd2919bc446cad68d11de90cec4025d3683591c/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.BeforeCommon.targets#L230-L237 2. Validate the TargetPlatformVersion: https://github.com/dotnet/sdk/blob/bfd2919bc446cad68d11de90cec4025d3683591c/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.TargetFrameworkInference.targets#L233-L246 The problem is that these two uses aren't equivalent. Take for example the following scenario: We release bindings for iOS 10, and a library developer takes advantage of the bindings for the new iOS version, while at the same time supporting multi-targeting to older platforms: ```csharp #if IOS10_0_OR_GREATER UseNewApi (); #else UseOldApi (); #endif ``` Time passes, iOS 11 comes out, and we stop shipping bindings specifically for iOS 10 (the APIs themselves would be included in the bindings for iOS 11). The code above should continue to work, but iOS 10 is not a valid TargetPlatformVersion anymore. However, with the current situation there's no way to express this, because the moment we remove the "10.0" version from SdkSupportedTargetPlatformVersion, the IOS10_0_OR_GREATER define isn't generated anymore. We discussed this in a meeting internally, and the suggestion that came up was to use metadata to handle this situation, and we've decided to add the "DefineConstantsOnly=true" metadata to items in SdkSupportedTargetPlatformVersion that are "OS versions we support or have supported", but not "OS versions we support as TargetPlatformVersion". Note: we're adding this to .NET 8, but .NET will not understand the new metadata until .NET 9, which means this won't be a breaking change until .NET 9. In a different PR I'll add logic to warn if a project uses a TargetPlatformVersion that is no longer valid (so that people will start getting a warning in .NET 8 instead of getting surprised by a build error in .NET 9). Ref: https://github.com/dotnet/sdk/issues/38016
2024-01-23 21:17:25 +03:00
</array>
</dict>
<key>SupportedTargetPlatformVersions</key>
<dict>
<key>MacCatalyst</key>
<array>
<!-- When an entry is added to KnownVersions, an entry must be added here too -->
<!-- However, versions are never removed from this array -->
<!-- The values here are used to generate the MACCATALYSTX_Y_OR_GREATER conditional compilation symbols, and those must be generated even for old OS versions -->
<string>13.1</string>
<string>13.2</string>
<string>13.3</string>
<string>13.4</string>
<string>13.5</string>
<string>14.2</string>
<string>14.3</string>
<string>14.4</string>
<string>14.5</string>
<string>15.0</string>
<string>15.2</string>
<string>15.4</string>
<string>16.1</string>
<string>16.2</string>
<string>16.4</string>
<string>17.0</string>
<string>17.2</string>
<string>17.4</string>
<string>17.5</string>
2024-06-10 22:29:43 +03:00
<string>18.0</string>
</array>
</dict>
<key>MacCatalystVersionMap</key>
<dict>
<key>13.1</key>
<string>10.15</string>
<key>13.2</key>
<string>10.15.1</string>
<key>13.3</key>
<string>10.15.2</string>
<key>13.4</key>
<string>10.15.4</string>
<key>13.5</key>
<string>10.15.5</string>
<key>14.2</key>
<string>11.0</string>
<key>14.3</key>
<string>11.1</string>
<key>14.4</key>
<string>11.1</string>
<key>14.5</key>
<string>11.3</string>
<key>15.0</key>
<string>12.0</string>
<key>15.2</key>
<string>12.1</string>
<key>15.4</key>
<string>12.3</string>
<key>16.1</key>
<string>13.0</string>
<key>16.2</key>
<string>13.1</string>
<key>16.4</key>
<string>13.3</string>
<key>17.0</key>
<string>14.0</string>
<key>17.2</key>
<string>14.2</string>
<key>17.4</key>
<string>14.4</string>
<key>17.5</key>
<string>14.5</string>
<key>18.0</key>
<string>15.0</string>
</dict>
<key>RecommendedXcodeVersion</key>
<string>@XCODE_VERSION@</string>
<key>MinExtensionVersion</key>
<dict>
</dict>
<key>Features</key>
<array>
<string>mlaunch-launchdevbundleid</string>
<string>mlaunch-observe-extension</string>
<string>mlaunch-launch-simulator</string>
<string>mlaunch-install-progress</string>
<string>mlaunch-watchos-complications</string>
<string>mlaunch-wireless-devices</string>
<string>http-client-handlers</string>
<string>mono-symbol-archive</string>
<string>sgen-concurrent-gc</string> <!-- this means experimental support for the concurrent GC -->
<string>sgen-concurrent</string> <!-- this means stable support for the concurrent GC -->
<string>arm64_32</string>
<string>altool</string>
<string>maccatalyst</string>
</array>
<key>Optimizations</key>
<dict>
<!-- The key is the value to be passed to mtouch. The string is a very short description. Any IDE UI should also point to the documentation for the optimizations. -->
<key>inline-intptr-size</key>
<string>Inline IntPtr.Size</string>
<key>inline-runtime-arch</key>
<string>Inline NSObject.IsDirectBinding</string>
<key>dead-code-elimination</key>
<string>Dead code elimination</string>
<key>remove-uithread-checks</key>
<string>Remove UI thread checks</string>
</dict>
</dict>
</plist>