From 8399219e575d6ac18bd17ba1867cb506b543ab9d Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Wed, 15 May 2024 14:59:46 +0100 Subject: [PATCH 1/8] Remove Instant Run Support --- .external | 2 +- .../building-apps/build-properties.md | 2 + build-tools/automation/azure-pipelines.yaml | 10 --- .../Tasks/ProcessAssemblies.cs | 2 +- .../BuildWithLibraryTests.cs | 2 +- .../Android/KnownProperties.cs | 1 - .../XamarinAndroidApplicationProject.cs | 5 -- .../Tests/DebuggingTest.cs | 51 +----------- .../Tests/InstantRunTest.cs | 78 +------------------ .../Tests/MonoAndroidExportTest.cs | 13 +--- 10 files changed, 10 insertions(+), 156 deletions(-) diff --git a/.external b/.external index f0a5b855d3f..079bb2d2dae 100644 --- a/.external +++ b/.external @@ -1 +1 @@ -xamarin/monodroid:main@9ca6d9f64fce11f04d668ece50ada36de1d7efce +xamarin/monodroid:rminstantrun@a59662b944fe04b90ddb3131f8f704314bab5bb0 diff --git a/Documentation/docs-mobile/building-apps/build-properties.md b/Documentation/docs-mobile/building-apps/build-properties.md index 9964444fd6c..0c28c3efd43 100644 --- a/Documentation/docs-mobile/building-apps/build-properties.md +++ b/Documentation/docs-mobile/building-apps/build-properties.md @@ -549,6 +549,8 @@ Support for Fast Deploying resources and assets via that system was removed in commit [f0d565fe](https://github.com/xamarin/xamarin-android/commit/f0d565fe4833f16df31378c77bbb492ffd2904b9). This was becuase it required the use of deprecated API's to work. +**Support for this feature was removed in .NET 9 + **Experimental**. ## AndroidFragmentType diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index dd8ea80b0d7..b70e0fdc0b7 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -220,16 +220,6 @@ extends: artifactSource: bin/Test$(XA.Build.Configuration)/$(DotNetTargetFramework)-android/Xamarin.Android.JcwGen_Tests-Signed.apk artifactFolder: $(DotNetTargetFramework)-Default - - template: /build-tools/automation/yaml-templates/apk-instrumentation.yaml@self - parameters: - configuration: $(XA.Build.Configuration) - testName: Xamarin.Android.JcwGen_Tests_FastDev - project: tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/Xamarin.Android.JcwGen-Tests.csproj - testResultsFiles: TestResult-Xamarin.Android.JcwGen_Tests-$(XA.Build.Configuration).xml - artifactSource: bin/Test$(XA.Build.Configuration)/$(DotNetTargetFramework)-android/Xamarin.Android.JcwGen_Tests-Signed.apk - artifactFolder: $(DotNetTargetFramework)-FastDev_Assemblies_Dexes - extraBuildArgs: /p:AndroidFastDeploymentType=Assemblies:Dexes - - template: /build-tools/automation/yaml-templates/run-nunit-tests.yaml@self parameters: testRunTitle: Xamarin.Android.Tools.Aidl-Tests - macOS diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs index 98065ecf653..02ce62f6b87 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs @@ -142,7 +142,7 @@ static bool IsFromAKnownRuntimePack (ITaskItem assembly) static ITaskItem? GetOrCreateSymbolItem (Dictionary symbols, ITaskItem assembly) { var symbolPath = Path.ChangeExtension (assembly.ItemSpec, ".pdb"); - if (!symbols.TryGetValue (symbolPath, out var symbol)) { + if (!symbols.TryGetValue (symbolPath, out var symbol) || !string.IsNullOrEmpty (symbol.GetMetadata ("DestinationSubDirectory"))) { // Sometimes .pdb files are not included in @(ResolvedFileToPublish), so add them if they exist if (File.Exists (symbolPath)) { symbols [symbolPath] = symbol = new TaskItem (symbolPath); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs index 33f75fccbea..0e8a721998f 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs @@ -601,7 +601,7 @@ public void LibraryProjectsShouldSkipGetPrimaryCpuAbi () var proj = new XamarinAndroidLibraryProject (); using (var b = CreateDllBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); - Assert.IsTrue (b.Output.IsTargetSkipped (target), $"`{target}` should be skipped!"); + Assert.IsTrue (b.Output.IsTargetSkipped (target, defaultIfNotUsed: true), $"`{target}` should be skipped!"); } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownProperties.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownProperties.cs index fa20a560acd..2ce6a3f142e 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownProperties.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownProperties.cs @@ -32,7 +32,6 @@ public static class KnownProperties public const string OutputPath = "OutputPath"; public const string IntermediateOutputPath = "IntermediateOutputPath"; public const string OutputType = "OutputType"; - public const string AndroidFastDeploymentType = "AndroidFastDeploymentType"; public const string AndroidClassParser = "AndroidClassParser"; public const string _AndroidAllowDeltaInstall = "_AndroidAllowDeltaInstall"; public const string Nullable = "Nullable"; diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidApplicationProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidApplicationProject.cs index 5b54d4b2201..68416ad4831 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidApplicationProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidApplicationProject.cs @@ -129,11 +129,6 @@ public string LinkTool { set { SetProperty (KnownProperties.AndroidLinkTool, value); } } - public string AndroidFastDeploymentType { - get { return GetProperty (KnownProperties.AndroidFastDeploymentType); } - set { SetProperty (KnownProperties.AndroidFastDeploymentType, value); } - } - public bool UseJackAndJill { get { return string.Equals (GetProperty (KnownProperties.UseJackAndJill), "True", StringComparison.OrdinalIgnoreCase); } set { SetProperty (KnownProperties.UseJackAndJill, value.ToString ()); } diff --git a/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs b/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs index d4fdd38f9d1..72fce3201d2 100755 --- a/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs +++ b/tests/MSBuildDeviceIntegration/Tests/DebuggingTest.cs @@ -137,37 +137,16 @@ public void ClassLibraryMainLauncherRuns ([Values (true, false)] bool preloadAss static object [] DebuggerCustomAppTestCases = new object [] { new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* activityStarts */ true, /* packageFormat */ "apk", }, new object[] { /* embedAssemblies */ false, - /* fastDevType */ "Assemblies", /* activityStarts */ true, /* packageFormat */ "apk", }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies:Dexes", - /* activityStarts */ true, - /* packageFormat */ "apk", - }, - new object[] { - /* embedAssemblies */ false, - /* fastDevType */ "Assemblies:Dexes", - /* activityStarts */ false, - /* packageFormat */ "apk", - }, - new object[] { - /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", - /* activityStarts */ true, - /* packageFormat */ "aab", - }, - new object[] { - /* embedAssemblies */ true, - /* fastDevType */ "Assemblies:Dexes", /* activityStarts */ true, /* packageFormat */ "aab", }, @@ -177,7 +156,7 @@ public void ClassLibraryMainLauncherRuns ([Values (true, false)] bool preloadAss [Test, Category ("Debugger")] [TestCaseSource (nameof (DebuggerCustomAppTestCases))] [Retry(5)] - public void CustomApplicationRunsWithDebuggerAndBreaks (bool embedAssemblies, string fastDevType, bool activityStarts, string packageFormat) + public void CustomApplicationRunsWithDebuggerAndBreaks (bool embedAssemblies, bool activityStarts, string packageFormat) { AssertCommercialBuild (); SwitchUser (); @@ -190,7 +169,6 @@ public void CustomApplicationRunsWithDebuggerAndBreaks (bool embedAssemblies, st var proj = new XamarinAndroidApplicationProject () { IsRelease = false, - AndroidFastDeploymentType = fastDevType, }; proj.SetAndroidSupportedAbis (DeviceAbi); proj.SetProperty ("EmbedAssembliesIntoApk", embedAssemblies.ToString ()); @@ -299,7 +277,6 @@ public override void OnCreate () static object [] DebuggerTestCases = new object [] { new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* allowDeltaInstall */ false, /* user */ null, /* packageFormat */ "apk", @@ -307,7 +284,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* allowDeltaInstall */ false, /* user */ null, /* packageFormat */ "apk", @@ -315,23 +291,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ false, - /* fastDevType */ "Assemblies", - /* allowDeltaInstall */ false, - /* user */ null, - /* packageFormat */ "apk", - /* useLatestSdk */ true, - }, - new object[] { - /* embedAssemblies */ false, - /* fastDevType */ "Assemblies", - /* allowDeltaInstall */ true, - /* user */ null, - /* packageFormat */ "apk", - /* useLatestSdk */ true, - }, - new object[] { - /* embedAssemblies */ false, - /* fastDevType */ "Assemblies:Dexes", /* allowDeltaInstall */ false, /* user */ null, /* packageFormat */ "apk", @@ -339,7 +298,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ false, - /* fastDevType */ "Assemblies:Dexes", /* allowDeltaInstall */ true, /* user */ null, /* packageFormat */ "apk", @@ -347,7 +305,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* allowDeltaInstall */ false, /* user */ DeviceTest.GuestUserName, /* packageFormat */ "apk", @@ -355,7 +312,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ false, - /* fastDevType */ "Assemblies", /* allowDeltaInstall */ false, /* user */ DeviceTest.GuestUserName, /* packageFormat */ "apk", @@ -363,7 +319,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* allowDeltaInstall */ false, /* user */ null, /* packageFormat */ "aab", @@ -371,7 +326,6 @@ public override void OnCreate () }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* allowDeltaInstall */ false, /* user */ DeviceTest.GuestUserName, /* packageFormat */ "aab", @@ -383,7 +337,7 @@ public override void OnCreate () [Test, Category ("Debugger"), Category ("WearOS")] [TestCaseSource (nameof(DebuggerTestCases))] [Retry (5)] - public void ApplicationRunsWithDebuggerAndBreaks (bool embedAssemblies, string fastDevType, bool allowDeltaInstall, string username, string packageFormat, bool useLatestSdk) + public void ApplicationRunsWithDebuggerAndBreaks (bool embedAssemblies, bool allowDeltaInstall, string username, string packageFormat, bool useLatestSdk) { AssertCommercialBuild (); SwitchUser (); @@ -424,7 +378,6 @@ public Foo () ProjectName = "App", IsRelease = false, EmbedAssembliesIntoApk = embedAssemblies, - AndroidFastDeploymentType = fastDevType }; if (!useLatestSdk) { lib.TargetFramework = "net8.0-android"; diff --git a/tests/MSBuildDeviceIntegration/Tests/InstantRunTest.cs b/tests/MSBuildDeviceIntegration/Tests/InstantRunTest.cs index 88e3c853e35..5df3689abb5 100644 --- a/tests/MSBuildDeviceIntegration/Tests/InstantRunTest.cs +++ b/tests/MSBuildDeviceIntegration/Tests/InstantRunTest.cs @@ -16,23 +16,19 @@ public void InstantRunSimpleBuild () AssertCommercialBuild (); var proj = new XamarinFormsAndroidApplicationProject { - AndroidFastDeploymentType = "Assemblies:Dexes", }; var b = CreateApkBuilder (Path.Combine ("temp", TestName)); Assert.IsTrue (b.Clean (proj), "Clean should have succeeded."); Assert.IsTrue (b.Build (proj), "Build should have succeeded."); - var manifest = b.Output.GetIntermediaryAsText (BuildOutputFiles.AndroidManifest); - Assert.IsTrue (File.Exists (b.Output.GetIntermediaryPath ("android/bin/dex/mono.android.dex")), "there should be mono.android.dex in the intermediaries."); - using (var apk = ((AndroidApplicationBuildOutput) b.Output).OpenApk ()) { var dexFile = Path.GetTempFileName (); File.WriteAllBytes (dexFile, apk.GetRaw (ApkContents.ClassesDex)); try { string className = "Lcom/xamarin/forms/platform/android/FormsViewGroup;"; - Assert.IsFalse (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should *not* include `{className}`!"); + Assert.IsTrue (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should include `{className}`!"); className = "Lmono/MonoRuntimeProvider;"; - Assert.IsFalse (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should include `{className}`!"); + Assert.IsTrue (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should include `{className}`!"); className = "Lmono/MonoPackageManager;"; Assert.IsTrue (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should include `{className}`!"); } finally { @@ -49,7 +45,6 @@ public void TargetsSkipped ([Values(false, true)] bool useManagedResourceGenerat AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject () { - AndroidFastDeploymentType = "Assemblies:Dexes", }; proj.SetProperty ("AndroidUseManagedDesignTimeResourceGenerator", useManagedResourceGenerator.ToString ()); proj.SetProperty ("AndroidUseDesignerAssembly", "False"); @@ -124,7 +119,6 @@ public void SimpleInstallAndUninstall () AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject { - AndroidFastDeploymentType = "Assemblies:Dexes", }; proj.SetDefaultTargetDevice (); var b = CreateApkBuilder (Path.Combine ("temp", TestName)); @@ -139,7 +133,6 @@ public void SkipFastDevAlreadyInstalledFile () AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject { - AndroidFastDeploymentType = "Assemblies:Dexes", }; proj.SetDefaultTargetDevice (); proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); @@ -182,7 +175,6 @@ public void SkipFastDevAlreadyInstalledResources (Package [] packages, string ba AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject () { - AndroidFastDeploymentType = "Assemblies:Dexes", }; proj.SetDefaultTargetDevice (); foreach (var pkg in packages) @@ -211,7 +203,6 @@ public void InstantRunResourceChange () AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject () { - AndroidFastDeploymentType = "Assemblies:Dexes", }; proj.SetDefaultTargetDevice (); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { @@ -236,76 +227,12 @@ public void InstantRunResourceChange () } } - [Test] - public void InstantRunFastDevTypemaps () - { - AssertCommercialBuild (); - - var proj = new XamarinAndroidApplicationProject () { - AndroidFastDeploymentType = "Assemblies:Dexes", - }; - proj.SetDefaultTargetDevice (); - using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { - Assert.IsTrue (b.Install (proj), "packaging should have succeeded. 0"); - var apk = Path.Combine (Root, b.ProjectDirectory, - proj.OutputPath, $"{proj.PackageName}-Signed.apk"); - Assert.IsNull (ZipHelper.ReadFileFromZip (apk, "Mono.Android.typemap"), $"Mono.Android.typemap should NOT be in {apk}."); - var logLines = b.LastBuildOutput; - Assert.IsTrue (logLines.Any (l => l.Contains ("Building target \"_BuildApkFastDev\" completely.") || - l.Contains ("Target _BuildApkFastDev needs to be built")), - "Apk should have been built"); - Assert.IsTrue (logLines.Any (l => l.Contains ("Building target \"_Upload\" completely")), "_Upload target should have run"); - Assert.IsTrue (logLines.Any (l => l.Contains ("NotifySync CopyFile") && l.Contains ("Mono.Android.typemap")), "Mono.Android.typemap should have been uploaded"); - Assert.IsTrue (logLines.Any (l => l.Contains ("NotifySync CopyFile") && l.Contains ("typemap.index")), "typemap.index should have been uploaded"); - } - } - - [Test] - public void InstantRunNativeLibrary () - { - AssertCommercialBuild (); - - var nativeLib = new AndroidItem.AndroidNativeLibrary ($"foo\\{DeviceAbi}\\libtest.so") { - BinaryContent = () => new byte [10], - MetadataValues = $"Link=libs\\{DeviceAbi}\\libtest.so", - }; - var proj = new XamarinAndroidApplicationProject () { - AndroidFastDeploymentType = "Assemblies:Dexes", - OtherBuildItems = { - nativeLib, - }, - }; - //NOTE: in .NET 6 by default an x86_64 emulator would fall back to x86 if we don't set this. - proj.SetAndroidSupportedAbis (DeviceAbi); - proj.SetDefaultTargetDevice (); - using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { - Assert.IsTrue (b.Install (proj), "install should have succeeded. 0"); - var logLines = b.LastBuildOutput; - Assert.IsTrue (logLines.Any (l => l.Contains ("Building target \"_BuildApkFastDev\" completely.") || - l.Contains ("Target _BuildApkFastDev needs to be built")), - "Apk should have been built"); - Assert.IsTrue (logLines.Any (l => l.Contains ("Building target \"_Upload\" completely")), "_Upload target should have run"); - Assert.IsTrue (logLines.Any (l => l.Contains ("NotifySync CopyFile") && l.Contains ("libtest.so")), "libtest.so should have been uploaded"); - - nativeLib.BinaryContent = () => new byte [20]; - nativeLib.Timestamp = DateTime.UtcNow.AddSeconds(1); - Assert.IsTrue (b.Install (proj, doNotCleanupOnUpdate: true, saveProject: false), "install should have succeeded. 1"); - logLines = b.LastBuildOutput; - Assert.IsFalse (logLines.Any (l => l.Contains ("Building target \"_BuildApkFastDev\" completely.") || - l.Contains ("Target _BuildApkFastDev needs to be built")), - "Apk should not have been built"); - Assert.IsTrue (logLines.Any (l => l.Contains ("Building target \"_Upload\" completely")), "_Upload target should have run"); - Assert.IsTrue (logLines.Any (l => l.Contains ("NotifySync CopyFile") && l.Contains ("libtest.so")), "libtest.so should have been uploaded"); - } - } - [Test] public void InstantRunFastDevDexes ([Values (false, true)] bool useEmbeddedDex) { AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject () { - AndroidFastDeploymentType = "Assemblies:Dexes", }; proj.SetDefaultTargetDevice (); proj.AndroidManifest = proj.AndroidManifest.Replace (" l.Contains ("Building target \"_Upload\" completely")), "_Upload target should have run"); - Assert.IsTrue (logLines.Any (l => l.Contains ("NotifySync CopyFile") && l.Contains ("classes.dex")), "classes.dex should have been uploaded"); ClearAdbLogcat (); RunProjectAndAssert (proj, b); Assert.True (WaitForActivityToStart (proj.PackageName, "MainActivity", diff --git a/tests/MSBuildDeviceIntegration/Tests/MonoAndroidExportTest.cs b/tests/MSBuildDeviceIntegration/Tests/MonoAndroidExportTest.cs index d3776af0921..cf2a61dbdae 100644 --- a/tests/MSBuildDeviceIntegration/Tests/MonoAndroidExportTest.cs +++ b/tests/MSBuildDeviceIntegration/Tests/MonoAndroidExportTest.cs @@ -19,27 +19,18 @@ public class MonoAndroidExportTest : DeviceTest static object [] MonoAndroidExportTestCases = new object [] { new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies", /* isRelease */ false, }, new object[] { /* embedAssemblies */ false, - /* fastDevType */ "Assemblies", /* isRelease */ false, }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "Assemblies:Dexes", - /* isRelease */ false, - }, - new object[] { - /* embedAssemblies */ false, - /* fastDevType */ "Assemblies:Dexes", /* isRelease */ false, }, new object[] { /* embedAssemblies */ true, - /* fastDevType */ "", /* isRelease */ true, }, }; @@ -47,7 +38,7 @@ public class MonoAndroidExportTest : DeviceTest [Test] [TestCaseSource (nameof (MonoAndroidExportTestCases))] - public void MonoAndroidExportReferencedAppStarts (bool embedAssemblies, string fastDevType, bool isRelease) + public void MonoAndroidExportReferencedAppStarts (bool embedAssemblies, bool isRelease) { AssertCommercialBuild (); var proj = new XamarinAndroidApplicationProject () { @@ -56,8 +47,6 @@ public void MonoAndroidExportReferencedAppStarts (bool embedAssemblies, string f new BuildItem.Reference ("Mono.Android.Export"), }, }; - if (!string.IsNullOrEmpty (fastDevType)) - proj.AndroidFastDeploymentType = fastDevType; proj.Sources.Add (new BuildItem.Source ("ContainsExportedMethods.cs") { TextContent = () => @"using System; using Java.Interop; From 07d24757a0d116f43bccced7b0b9888b57abf1b1 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 21 May 2024 21:28:32 +0100 Subject: [PATCH 2/8] Bump monodroid --- .external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.external b/.external index 079bb2d2dae..3f1f3cdc47a 100644 --- a/.external +++ b/.external @@ -1 +1 @@ -xamarin/monodroid:rminstantrun@a59662b944fe04b90ddb3131f8f704314bab5bb0 +xamarin/monodroid:main@272999f3bc26c8f708d9e26ed2246c2249e5b546 From a20df01c033c1fe8d344241bcdfbd024f6653cd0 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Wed, 22 May 2024 12:42:42 +0100 Subject: [PATCH 3/8] Add Deprecation warning --- .../Xamarin.Android.Common.targets | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 5d81e3f7545..f3a00246d99 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -535,6 +535,11 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. ResourceName="XA1035" Condition=" '$(BundleAssemblies)' == 'true' " /> +