Browse Source

Bump minimal TFM for mobile projects from .NET 6 to .NET 7… (#13012)

* Bump minimal TFM for mobile projects from .NET 6 to .NET 7 because of MAUI support policy

* Fix api diff
Max Katz 2 years ago
parent
commit
3de2a0ea91

+ 12 - 1
nukebuild/ApiDiffValidation.cs

@@ -13,6 +13,12 @@ public static class ApiDiffValidation
 {
     private static readonly HttpClient s_httpClient = new();
 
+    private static readonly Dictionary<(string target, string asmName), (string target, string asmName)> s_assemblyRedirects = new()
+    {
+        [("net6.0-android31.0", "Avalonia.Android.dll")] = ("net7.0-android33.0", "Avalonia.Android.dll"),
+        [("net6.0-ios16.1", "Avalonia.iOS.dll")] = ("net7.0-ios16.1", "Avalonia.iOS.dll")
+    };
+
     public static async Task ValidatePackage(
         Tool apiCompatTool, string packagePath, string baselineVersion,
         string suppressionFilesFolder, bool updateSuppressionFile)
@@ -58,8 +64,13 @@ public static class ApiDiffValidation
                     await baselineDll.entry.Open().CopyToAsync(baselineDllFile);
                 }
 
+                if (!s_assemblyRedirects.TryGetValue((baselineDll.target, baselineDll.entry.Name), out var lookupPair))
+                {
+                    lookupPair = (baselineDll.target, baselineDll.entry.Name);
+                }
+
                 var targetDll = targetDlls.FirstOrDefault(e =>
-                    e.target == baselineDll.target && e.entry.Name == baselineDll.entry.Name);
+                    e.target == lookupPair.target && e.entry.Name == lookupPair.asmName);
                 if (targetDll.entry is null)
                 {
                     throw new InvalidOperationException($"Some assemblies are missing in the new package {packageId}: {baselineDll.entry.Name} for {baselineDll.target}");

+ 1 - 17
samples/ControlCatalog.Android/ControlCatalog.Android.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0-android</TargetFramework>
+    <TargetFramework>net7.0-android</TargetFramework>
     <SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
     <OutputType>Exe</OutputType>
     <Nullable>enable</Nullable>
@@ -10,28 +10,12 @@
     <AndroidPackageFormat>apk</AndroidPackageFormat>
     <MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>
   </PropertyGroup>
-  <ItemGroup>
-    <None Remove="Resources\drawable-night-v31\avalonia_anim.xml" />
-    <None Remove="Resources\drawable-v31\avalonia_anim.xml" />
-    <None Remove="Resources\values-v31\styles.xml" />
-  </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="..\..\build\Assets\Icon.png">
       <Link>Resources\drawable\Icon.png</Link>
     </AndroidResource>
   </ItemGroup>
 
-  <PropertyGroup Condition="'$(RunAOTCompilation)'=='' and '$(Configuration)'=='Release' and '$(TF_BUILD)'==''">
-    <RunAOTCompilation>True</RunAOTCompilation>
-  </PropertyGroup>
-  
-  <!-- PropertyGroup Condition="'$(RunAOTCompilation)'=='True'">
-    <EnableLLVM>True</EnableLLVM>
-    <AndroidAotAdditionalArguments>no-write-symbols,nodebug</AndroidAotAdditionalArguments>
-    <AndroidAotMode>Hybrid</AndroidAotMode>
-    <AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
-  </PropertyGroup -->
-
   <PropertyGroup Condition="'$(AndroidEnableProfiler)'=='True'">
     <IsEmulator Condition="'$(IsEmulator)' == ''">True</IsEmulator>
     <DebugSymbols>True</DebugSymbols>

+ 1 - 8
samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj

@@ -2,15 +2,8 @@
   <PropertyGroup>
     <OutputType>Exe</OutputType>
     <ProvisioningType>manual</ProvisioningType>
-    <TargetFramework>net6.0-ios</TargetFramework>
+    <TargetFramework>net7.0-ios</TargetFramework>
     <SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
-    <!-- temporal workaround for our GL interface backend -->
-    <UseInterpreter>True</UseInterpreter>
-    <RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
-    <!--    <RuntimeIdentifier>ios-arm64</RuntimeIdentifier>-->
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <CodesignKey>iPhone Developer</CodesignKey>
   </PropertyGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\iOS\Avalonia.iOS\Avalonia.iOS.csproj" />

+ 1 - 18
samples/MobileSandbox.Android/MobileSandbox.Android.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0-android</TargetFramework>
+    <TargetFramework>net7.0-android</TargetFramework>
     <SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
     <OutputType>Exe</OutputType>
     <Nullable>enable</Nullable>
@@ -10,29 +10,12 @@
     <AndroidPackageFormat>apk</AndroidPackageFormat>
     <MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>
   </PropertyGroup>
-  <ItemGroup>
-    <None Remove="Resources\drawable-night-v31\avalonia_anim.xml" />
-    <None Remove="Resources\drawable-v31\avalonia_anim.xml" />
-    <None Remove="Resources\values-v31\styles.xml" />
-    <None Remove="Resources\values-night\colors.xml" />
-  </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="..\..\build\Assets\Icon.png">
       <Link>Resources\drawable\Icon.png</Link>
     </AndroidResource>
   </ItemGroup>
 
-  <PropertyGroup Condition="'$(RunAOTCompilation)'=='' and '$(Configuration)'=='Release' and '$(TF_BUILD)'==''">
-    <RunAOTCompilation>True</RunAOTCompilation>
-  </PropertyGroup>
-  
-  <!-- PropertyGroup Condition="'$(RunAOTCompilation)'=='True'">
-    <EnableLLVM>True</EnableLLVM>
-    <AndroidAotAdditionalArguments>no-write-symbols,nodebug</AndroidAotAdditionalArguments>
-    <AndroidAotMode>Hybrid</AndroidAotMode>
-    <AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
-  </PropertyGroup -->
-
   <PropertyGroup Condition="'$(AndroidEnableProfiler)'=='True'">
     <IsEmulator Condition="'$(IsEmulator)' == ''">True</IsEmulator>
     <DebugSymbols>True</DebugSymbols>

+ 0 - 4
samples/MobileSandbox.iOS/MobileSandbox.iOS.csproj

@@ -4,10 +4,6 @@
     <ProvisioningType>manual</ProvisioningType>
     <TargetFramework>net6.0-ios</TargetFramework>
     <SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
-    <!-- temporal workaround for our GL interface backend -->
-    <UseInterpreter>True</UseInterpreter>
-    <RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
-    <!--    <RuntimeIdentifier>ios-arm64</RuntimeIdentifier>-->
   </PropertyGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\iOS\Avalonia.iOS\Avalonia.iOS.csproj" />

+ 1 - 5
samples/SafeAreaDemo.iOS/SafeAreaDemo.iOS.csproj

@@ -5,12 +5,8 @@
     <SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
     <ProvisioningType>manual</ProvisioningType>
     <Nullable>enable</Nullable>
-    <RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
-    
-    <!-- These properties need to be set in order to run on a real iDevice -->
-    <!--<RuntimeIdentifier>ios-arm64</RuntimeIdentifier>-->
-    <!--<CodesignKey></CodesignKey>-->
   </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\SafeAreaDemo\SafeAreaDemo.csproj" />
     <ProjectReference Include="..\..\src\iOS\Avalonia.iOS\Avalonia.iOS.csproj" />

+ 1 - 1
src/Android/Avalonia.Android/Avalonia.Android.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0-android</TargetFramework>
+    <TargetFramework>net7.0-android</TargetFramework>
     <SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>

+ 1 - 1
src/iOS/Avalonia.iOS/Avalonia.iOS.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0-ios</TargetFramework>
+    <TargetFramework>net7.0-ios</TargetFramework>
     <SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
     <MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>
   </PropertyGroup>