From 8a5c79a4bf4a99152a551c082834ffbff0806a74 Mon Sep 17 00:00:00 2001 From: Oleg Demchenko Date: Thu, 4 Jan 2018 15:41:57 -0500 Subject: [PATCH 1/3] Add AllKeys property and GetEntitlementsKeys method --- Xamarin.MacDev/EntitlementExtensions.cs | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Xamarin.MacDev/EntitlementExtensions.cs b/Xamarin.MacDev/EntitlementExtensions.cs index aa76018..588ebf2 100644 --- a/Xamarin.MacDev/EntitlementExtensions.cs +++ b/Xamarin.MacDev/EntitlementExtensions.cs @@ -6,6 +6,10 @@ // Copyright (c) 2016 Xamarin Inc. (www.xamarin.com) // +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + namespace Xamarin.MacDev { public static class EntitlementKeys @@ -30,6 +34,17 @@ public static class EntitlementKeys public const string GetTaskAllow = "get-task-allow"; public const string Siri = "com.apple.developer.siri"; public const string APS = "aps-environment"; + + public static IEnumerable AllKeys { + get { + var entitlementKeys = typeof (EntitlementKeys).GetFields (BindingFlags.Public | BindingFlags.Static). + Where (f => f.FieldType == typeof (string)). + Select (field => (string) field.GetValue (null)). + ToList (); + + return entitlementKeys; + } + } } public static class EntitlementExtensions @@ -138,5 +153,17 @@ public static void SetPassBookIdentifiers (this PDictionary dict, PArray value) else dict[EntitlementKeys.PassBookIdentifiers] = value; } + + public static IEnumerable GetEntitlementsKeys (this PDictionary dict) + { + var enabledEntitlements = new List (); + + foreach (var key in EntitlementKeys.AllKeys) { + if (dict.ContainsKey (key)) + enabledEntitlements.Add (key); + } + + return enabledEntitlements; + } } } From d0162514e904e8fef8c5abd40136f9faf62743bd Mon Sep 17 00:00:00 2001 From: Oleg Demchenko Date: Tue, 2 Jan 2018 16:09:14 -0500 Subject: [PATCH 2/3] Add missing data protection entitlement key (#19) --- Xamarin.MacDev/EntitlementExtensions.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Xamarin.MacDev/EntitlementExtensions.cs b/Xamarin.MacDev/EntitlementExtensions.cs index 588ebf2..4eb7059 100644 --- a/Xamarin.MacDev/EntitlementExtensions.cs +++ b/Xamarin.MacDev/EntitlementExtensions.cs @@ -14,6 +14,7 @@ namespace Xamarin.MacDev { public static class EntitlementKeys { + public const string DataProtection = "com.apple.developer.default-data-protection"; public const string WirelessAccessoryConfiguration = "com.apple.external-accessory.wireless-configuration"; public const string UbiquityKeyValueStore = "com.apple.developer.ubiquity-kvstore-identifier"; public const string UbiquityContainers = "com.apple.developer.ubiquity-container-identifiers"; From 50b92791e526507b3a9b73c4e04f2f63d02e2bed Mon Sep 17 00:00:00 2001 From: Oleg Demchenko Date: Fri, 5 Jan 2018 11:49:25 -0500 Subject: [PATCH 3/3] Fix method name GetEntitlementsKeys -> GetEntitlementKeys --- Xamarin.MacDev/EntitlementExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xamarin.MacDev/EntitlementExtensions.cs b/Xamarin.MacDev/EntitlementExtensions.cs index 4eb7059..93daf75 100644 --- a/Xamarin.MacDev/EntitlementExtensions.cs +++ b/Xamarin.MacDev/EntitlementExtensions.cs @@ -155,7 +155,7 @@ public static void SetPassBookIdentifiers (this PDictionary dict, PArray value) dict[EntitlementKeys.PassBookIdentifiers] = value; } - public static IEnumerable GetEntitlementsKeys (this PDictionary dict) + public static IEnumerable GetEntitlementKeys (this PDictionary dict) { var enabledEntitlements = new List ();