예제 #1
0
        //Network Extensions
        void ApplyNetworkExtensionsCapability(NetworkExtensionsCapability capability)
        {
            //update pbxproject
            _pbxproj.EnableSystemCapability("com.apple.NetworkExtensions.iOS", true);
            _pbxproj.AddSystemFramework("NetworkExtension.framework", LinkType.Required);
            //update entitlements file
            var entitlementChanges = new PListDictionary();
            var groups             = new PListArray();

            if (capability.AppProxy)
            {
                groups.Add("app-proxy-provider");
            }

            if (capability.ContentFilter)
            {
                groups.Add("content-filter-provider");
            }

            if (capability.PacketTunnel)
            {
                groups.Add("packet-tunnel-provider");
            }

            if (capability.DNSProxy)
            {
                groups.Add("dns-proxy");
            }

            entitlementChanges.Add("com.apple.developer.networking.networkextension", groups);
            ApplyEntitlementsChanges(entitlementChanges, true);
        }
예제 #2
0
 public NetworkExtensionsCapability(NetworkExtensionsCapability other)
     : base(other)
 {
     AppProxy      = other.AppProxy;
     ContentFilter = other.ContentFilter;
     PacketTunnel  = other.PacketTunnel;
     DNSProxy      = other.DNSProxy;
 }