diff --git a/dotnet/targets/Xamarin.Shared.Sdk.DefaultItems.targets b/dotnet/targets/Xamarin.Shared.Sdk.DefaultItems.targets index d100091037f5..3862d66833f7 100644 --- a/dotnet/targets/Xamarin.Shared.Sdk.DefaultItems.targets +++ b/dotnet/targets/Xamarin.Shared.Sdk.DefaultItems.targets @@ -23,6 +23,19 @@ + + True + True + + + + + + + + + + diff --git a/tests/dotnet/UnitTests/ProjectTest.cs b/tests/dotnet/UnitTests/ProjectTest.cs index 71b7a7723459..1455ab32477a 100644 --- a/tests/dotnet/UnitTests/ProjectTest.cs +++ b/tests/dotnet/UnitTests/ProjectTest.cs @@ -1270,6 +1270,32 @@ public void AutoAllowJitEntitlements (ApplePlatform platform, string runtimeIden } } + [TestCase (ApplePlatform.MacCatalyst, "maccatalyst-x64", "Release")] + [TestCase (ApplePlatform.MacCatalyst, "maccatalyst-x64", "Debug")] + public void CheckForMacCatalystDefaultEntitlements (ApplePlatform platform, string runtimeIdentifiers, string configuration) + { + var project = "Entitlements"; + Configuration.IgnoreIfIgnoredPlatform (platform); + Configuration.AssertRuntimeIdentifiersAvailable (platform, runtimeIdentifiers); + + var project_path = GetProjectPath (project, runtimeIdentifiers: runtimeIdentifiers, platform: platform, out var appPath, configuration: configuration); + Clean (project_path); + + var properties = GetDefaultProperties (runtimeIdentifiers); + properties ["Configuration"] = configuration; + DotNet.AssertBuild (project_path, properties); + + var executable = GetNativeExecutable (platform, appPath); + var foundEntitlements = TryGetEntitlements (executable, out var entitlements); + Assert.IsTrue (foundEntitlements, "Issues found with Entitlements."); + if (configuration == "Release") { + Assert.IsTrue (entitlements!.Get ("com.apple.security.app-sandbox")?.Value, "com.apple.security.app-sandbox enlistment was not found in Release configuration."); + Assert.IsNull (entitlements.Get ("com.apple.security.get-task-allow")?.Value, "com.apple.security.get-task-allow enlistment was found in Release configuration."); + } else if (configuration == "Debug") { + Assert.IsTrue (entitlements!.Get ("com.apple.security.get-task-allow")?.Value, "com.apple.security.get-task-allow enlistment was not found in Debug configuration."); + } + } + // [TestCase (ApplePlatform.MacCatalyst, null, "Release")] [TestCase (ApplePlatform.MacOSX, null, "Release")] public void NoWarnCodesign (ApplePlatform platform, string runtimeIdentifiers, string configuration)