diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ReadAndroidManifest.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ReadAndroidManifest.cs index 612fea6a844..c8143247d22 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ReadAndroidManifest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ReadAndroidManifest.cs @@ -35,6 +35,9 @@ public class ReadAndroidManifest : AndroidTask [Output] public bool UseEmbeddedDex { get; set; } = false; + [Output] + public bool IsTestOnly { get; set; } = false; + public override bool RunTask () { var androidNs = AndroidAppManifest.AndroidXNamespace; @@ -52,6 +55,11 @@ public override bool RunTask () UseEmbeddedDex = value; } + text = app.Attribute (androidNs + "testOnly")?.Value; + if (bool.TryParse (text, out value)) { + IsTestOnly = value; + } + var libraries = new List (); foreach (var uses_library in app.Elements ("uses-library")) { var attribute = uses_library.Attribute (androidNs + "name"); diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 8606402f9f1..060d670a696 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -1641,6 +1641,7 @@ because xbuild doesn't support framework reference assemblies. + .so;$(AndroidStoreUncompressedFileExtensions) diff --git a/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs b/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs index 7f780147517..f1ab011b0ee 100644 --- a/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs +++ b/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs @@ -764,12 +764,14 @@ public void ResourceDesignerWithNuGetReference ([Values ("net8.0-android33.0")] } [Test] - public void SingleProject_ApplicationId () + public void SingleProject_ApplicationId ([Values (false, true)] bool testOnly) { AssertHasDevices (); proj = new XamarinAndroidApplicationProject (); proj.SetProperty ("ApplicationId", "com.i.should.get.overridden.by.the.manifest"); + if (testOnly) + proj.AndroidManifest = proj.AndroidManifest.Replace ("