Update Demo to new library
This commit is contained in:
parent
897e824340
commit
0f9df88e4a
|
@ -1,11 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14269.14" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||||
<device id="retina4_7" orientation="portrait">
|
<device id="retina4_7" orientation="portrait">
|
||||||
<adaptation id="fullscreen"/>
|
<adaptation id="fullscreen"/>
|
||||||
</device>
|
</device>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
<deployment identifier="iOS"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14252.5"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scenes>
|
<scenes>
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<textInputTraits key="textInputTraits"/>
|
<textInputTraits key="textInputTraits"/>
|
||||||
</textField>
|
</textField>
|
||||||
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Teo-8d-LYJ">
|
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Teo-8d-LYJ">
|
||||||
<rect key="frame" x="20" y="240" width="237" height="70"/>
|
<rect key="frame" x="20" y="240" width="276" height="70"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="48"/>
|
<fontDescription key="fontDescription" type="system" pointSize="48"/>
|
||||||
<state key="normal" title="Connect"/>
|
<state key="normal" title="Connect"/>
|
||||||
<connections>
|
<connections>
|
||||||
|
@ -74,22 +74,8 @@
|
||||||
<action selector="tcpClicked:" destination="BYZ-38-t0r" eventType="valueChanged" id="ZJI-Jw-pow"/>
|
<action selector="tcpClicked:" destination="BYZ-38-t0r" eventType="valueChanged" id="ZJI-Jw-pow"/>
|
||||||
</connections>
|
</connections>
|
||||||
</switch>
|
</switch>
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gg2-18-Pq8">
|
|
||||||
<rect key="frame" x="267" y="257" width="88" height="36"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="20"/>
|
|
||||||
<state key="normal" title="Download"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="download" destination="BYZ-38-t0r" eventType="touchUpInside" id="D3u-Dg-Bcd"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="??" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b1e-IE-2kv">
|
|
||||||
<rect key="frame" x="179" y="318" width="17" height="20.5"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<nil key="textColor"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6dU-fF-FSg">
|
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6dU-fF-FSg">
|
||||||
<rect key="frame" x="20" y="310" width="78" height="41"/>
|
<rect key="frame" x="20" y="310" width="335" height="41"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="24"/>
|
<fontDescription key="fontDescription" type="system" pointSize="24"/>
|
||||||
<state key="normal" title="See log"/>
|
<state key="normal" title="See log"/>
|
||||||
<connections>
|
<connections>
|
||||||
|
@ -113,35 +99,30 @@
|
||||||
<constraint firstItem="WZf-S5-SqC" firstAttribute="bottom" secondItem="Teo-8d-LYJ" secondAttribute="bottom" id="HGt-O3-p5F"/>
|
<constraint firstItem="WZf-S5-SqC" firstAttribute="bottom" secondItem="Teo-8d-LYJ" secondAttribute="bottom" id="HGt-O3-p5F"/>
|
||||||
<constraint firstItem="ONL-vF-iUY" firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" id="OS0-Uz-cCz"/>
|
<constraint firstItem="ONL-vF-iUY" firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" id="OS0-Uz-cCz"/>
|
||||||
<constraint firstItem="6dU-fF-FSg" firstAttribute="leading" secondItem="Teo-8d-LYJ" secondAttribute="leading" id="P9y-bj-2tC"/>
|
<constraint firstItem="6dU-fF-FSg" firstAttribute="leading" secondItem="Teo-8d-LYJ" secondAttribute="leading" id="P9y-bj-2tC"/>
|
||||||
|
<constraint firstItem="WZf-S5-SqC" firstAttribute="leading" secondItem="Teo-8d-LYJ" secondAttribute="trailing" constant="10" id="QqJ-GR-aGp"/>
|
||||||
<constraint firstItem="XwE-sE-aPN" firstAttribute="top" secondItem="ONL-vF-iUY" secondAttribute="bottom" constant="20" id="XvO-b0-4Pl"/>
|
<constraint firstItem="XwE-sE-aPN" firstAttribute="top" secondItem="ONL-vF-iUY" secondAttribute="bottom" constant="20" id="XvO-b0-4Pl"/>
|
||||||
<constraint firstItem="UNN-CR-rdr" firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" id="Zep-Ze-DNM"/>
|
<constraint firstItem="UNN-CR-rdr" firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" id="Zep-Ze-DNM"/>
|
||||||
<constraint firstItem="UNN-CR-rdr" firstAttribute="leading" secondItem="bc6-yT-aty" secondAttribute="leading" id="Zix-pG-8bU"/>
|
<constraint firstItem="UNN-CR-rdr" firstAttribute="leading" secondItem="bc6-yT-aty" secondAttribute="leading" id="Zix-pG-8bU"/>
|
||||||
|
<constraint firstItem="6dU-fF-FSg" firstAttribute="trailing" secondItem="WZf-S5-SqC" secondAttribute="trailing" id="a7z-pJ-hKf"/>
|
||||||
<constraint firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" constant="20" id="cR0-Np-zTX"/>
|
<constraint firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" constant="20" id="cR0-Np-zTX"/>
|
||||||
<constraint firstItem="dQS-Ma-dYP" firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" id="eNP-iD-wgR"/>
|
<constraint firstItem="dQS-Ma-dYP" firstAttribute="trailing" secondItem="bc6-yT-aty" secondAttribute="trailing" id="eNP-iD-wgR"/>
|
||||||
<constraint firstItem="wfy-db-euE" firstAttribute="top" secondItem="UNN-CR-rdr" secondAttribute="bottom" constant="20" id="efh-iS-51K"/>
|
<constraint firstItem="wfy-db-euE" firstAttribute="top" secondItem="UNN-CR-rdr" secondAttribute="bottom" constant="20" id="efh-iS-51K"/>
|
||||||
<constraint firstItem="XwE-sE-aPN" firstAttribute="leading" secondItem="ONL-vF-iUY" secondAttribute="leading" id="fJB-38-JYZ"/>
|
<constraint firstItem="XwE-sE-aPN" firstAttribute="leading" secondItem="ONL-vF-iUY" secondAttribute="leading" id="fJB-38-JYZ"/>
|
||||||
<constraint firstItem="b1e-IE-2kv" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="fuR-6q-fd6"/>
|
|
||||||
<constraint firstItem="sA4-W9-jxo" firstAttribute="top" secondItem="Teo-8d-LYJ" secondAttribute="top" id="grl-36-NDr"/>
|
<constraint firstItem="sA4-W9-jxo" firstAttribute="top" secondItem="Teo-8d-LYJ" secondAttribute="top" id="grl-36-NDr"/>
|
||||||
<constraint firstItem="ONL-vF-iUY" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" constant="20" id="lNh-0d-b3b"/>
|
<constraint firstItem="ONL-vF-iUY" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" constant="20" id="lNh-0d-b3b"/>
|
||||||
<constraint firstItem="dQS-Ma-dYP" firstAttribute="top" secondItem="XwE-sE-aPN" secondAttribute="bottom" constant="20" id="lxB-za-cHQ"/>
|
<constraint firstItem="dQS-Ma-dYP" firstAttribute="top" secondItem="XwE-sE-aPN" secondAttribute="bottom" constant="20" id="lxB-za-cHQ"/>
|
||||||
<constraint firstItem="7LH-tE-it9" firstAttribute="leading" secondItem="XwE-sE-aPN" secondAttribute="trailing" constant="10" id="oYJ-8E-Ieq"/>
|
<constraint firstItem="7LH-tE-it9" firstAttribute="leading" secondItem="XwE-sE-aPN" secondAttribute="trailing" constant="10" id="oYJ-8E-Ieq"/>
|
||||||
<constraint firstItem="6dU-fF-FSg" firstAttribute="top" secondItem="Teo-8d-LYJ" secondAttribute="bottom" id="pAc-Ee-Ryj"/>
|
<constraint firstItem="6dU-fF-FSg" firstAttribute="top" secondItem="Teo-8d-LYJ" secondAttribute="bottom" id="pAc-Ee-Ryj"/>
|
||||||
<constraint firstItem="Teo-8d-LYJ" firstAttribute="top" secondItem="bc6-yT-aty" secondAttribute="bottom" constant="20" id="qnB-Iz-Gbp"/>
|
<constraint firstItem="Teo-8d-LYJ" firstAttribute="top" secondItem="bc6-yT-aty" secondAttribute="bottom" constant="20" id="qnB-Iz-Gbp"/>
|
||||||
<constraint firstItem="b1e-IE-2kv" firstAttribute="top" secondItem="Teo-8d-LYJ" secondAttribute="bottom" constant="8" id="rCG-di-kDu"/>
|
|
||||||
<constraint firstItem="ONL-vF-iUY" firstAttribute="leading" secondItem="bc6-yT-aty" secondAttribute="leading" id="sez-Cv-mp9"/>
|
<constraint firstItem="ONL-vF-iUY" firstAttribute="leading" secondItem="bc6-yT-aty" secondAttribute="leading" id="sez-Cv-mp9"/>
|
||||||
<constraint firstItem="Gg2-18-Pq8" firstAttribute="centerY" secondItem="Teo-8d-LYJ" secondAttribute="centerY" id="tHU-1i-TyC"/>
|
|
||||||
<constraint firstItem="bc6-yT-aty" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" constant="20" id="tZc-ru-OTc"/>
|
<constraint firstItem="bc6-yT-aty" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" constant="20" id="tZc-ru-OTc"/>
|
||||||
<constraint firstItem="7LH-tE-it9" firstAttribute="trailing" secondItem="ONL-vF-iUY" secondAttribute="trailing" id="tlD-XS-qwO"/>
|
<constraint firstItem="7LH-tE-it9" firstAttribute="trailing" secondItem="ONL-vF-iUY" secondAttribute="trailing" id="tlD-XS-qwO"/>
|
||||||
<constraint firstItem="sA4-W9-jxo" firstAttribute="centerX" secondItem="WZf-S5-SqC" secondAttribute="centerX" id="v80-dG-aB7"/>
|
<constraint firstItem="sA4-W9-jxo" firstAttribute="centerX" secondItem="WZf-S5-SqC" secondAttribute="centerX" id="v80-dG-aB7"/>
|
||||||
<constraint firstAttribute="trailing" secondItem="Gg2-18-Pq8" secondAttribute="trailing" constant="20" id="vzB-UP-pVi"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="WZf-S5-SqC" secondAttribute="trailing" constant="20" id="wMy-Qf-9Bi"/>
|
<constraint firstAttribute="trailing" secondItem="WZf-S5-SqC" secondAttribute="trailing" constant="20" id="wMy-Qf-9Bi"/>
|
||||||
<constraint firstItem="Gg2-18-Pq8" firstAttribute="leading" secondItem="Teo-8d-LYJ" secondAttribute="trailing" constant="10" id="yWA-EY-Qao"/>
|
|
||||||
</constraints>
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="buttonConnection" destination="Teo-8d-LYJ" id="evE-2I-13A"/>
|
<outlet property="buttonConnection" destination="Teo-8d-LYJ" id="evE-2I-13A"/>
|
||||||
<outlet property="buttonDownload" destination="Gg2-18-Pq8" id="3u5-YL-8tg"/>
|
|
||||||
<outlet property="labelDownload" destination="b1e-IE-2kv" id="AXL-Lj-KVd"/>
|
|
||||||
<outlet property="switchTCP" destination="WZf-S5-SqC" id="UyR-J2-iX0"/>
|
<outlet property="switchTCP" destination="WZf-S5-SqC" id="UyR-J2-iX0"/>
|
||||||
<outlet property="textDomain" destination="XwE-sE-aPN" id="byL-Ai-eAD"/>
|
<outlet property="textDomain" destination="XwE-sE-aPN" id="byL-Ai-eAD"/>
|
||||||
<outlet property="textLog" destination="UNN-CR-rdr" id="a9o-b3-nHT"/>
|
<outlet property="textLog" destination="UNN-CR-rdr" id="a9o-b3-nHT"/>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.privateinternetaccess.ios.demo.BasicTunnel</string>
|
<string>group.com.algoritmico.ios.demo.BasicTunnel</string>
|
||||||
</array>
|
</array>
|
||||||
<key>keychain-access-groups</key>
|
<key>keychain-access-groups</key>
|
||||||
<array>
|
<array>
|
||||||
|
|
|
@ -3,28 +3,52 @@
|
||||||
// BasicTunnel-iOS
|
// BasicTunnel-iOS
|
||||||
//
|
//
|
||||||
// Created by Davide De Rosa on 2/11/17.
|
// Created by Davide De Rosa on 2/11/17.
|
||||||
// Copyright © 2018 London Trust Media. All rights reserved.
|
// Copyright © 2018 Davide De Rosa. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import NetworkExtension
|
import NetworkExtension
|
||||||
import PIATunnel
|
import TunnelKit
|
||||||
|
|
||||||
|
extension ViewController {
|
||||||
|
private static let appGroup = "group.com.algoritmico.ios.demo.BasicTunnel"
|
||||||
|
|
||||||
|
private static let bundleIdentifier = "com.algoritmico.ios.demo.BasicTunnel.BasicTunnelExtension"
|
||||||
|
|
||||||
|
private func makeProtocol() -> NETunnelProviderProtocol {
|
||||||
|
let server = textServer.text!
|
||||||
|
let domain = textDomain.text!
|
||||||
|
|
||||||
|
let hostname = ((domain == "") ? server : [server, domain].joined(separator: "."))
|
||||||
|
let port = UInt16(textPort.text!)!
|
||||||
|
let username = textUsername.text!
|
||||||
|
let password = textPassword.text!
|
||||||
|
|
||||||
|
let endpoint = TunnelKitProvider.AuthenticatedEndpoint(
|
||||||
|
hostname: hostname,
|
||||||
|
username: username,
|
||||||
|
password: password
|
||||||
|
)
|
||||||
|
|
||||||
|
var builder = TunnelKitProvider.ConfigurationBuilder(appGroup: ViewController.appGroup)
|
||||||
|
let socketType: TunnelKitProvider.SocketType = switchTCP.isOn ? .tcp : .udp
|
||||||
|
builder.endpointProtocols = [TunnelKitProvider.EndpointProtocol(socketType, port)]
|
||||||
|
builder.cipher = .aes128cbc
|
||||||
|
builder.digest = .sha1
|
||||||
|
builder.mtu = 1350
|
||||||
|
builder.renegotiatesAfterSeconds = nil
|
||||||
|
builder.shouldDebug = true
|
||||||
|
builder.debugLogKey = "Log"
|
||||||
|
|
||||||
|
let configuration = builder.build()
|
||||||
|
return try! configuration.generatedTunnelProtocol(
|
||||||
|
withBundleIdentifier: ViewController.bundleIdentifier,
|
||||||
|
endpoint: endpoint
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class ViewController: UIViewController, URLSessionDataDelegate {
|
class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
static let APP_GROUP = "group.com.privateinternetaccess.ios.demo.BasicTunnel"
|
|
||||||
|
|
||||||
static let VPN_BUNDLE = "com.privateinternetaccess.ios.demo.BasicTunnel.BasicTunnelExtension"
|
|
||||||
|
|
||||||
static let CIPHER: PIATunnelProvider.Cipher = .aes128cbc
|
|
||||||
|
|
||||||
static let DIGEST: PIATunnelProvider.Digest = .sha1
|
|
||||||
|
|
||||||
static let HANDSHAKE: PIATunnelProvider.Handshake = .rsa2048
|
|
||||||
|
|
||||||
static let RENEG: Int? = nil
|
|
||||||
|
|
||||||
static let DOWNLOAD_COUNT = 5
|
|
||||||
|
|
||||||
@IBOutlet var textUsername: UITextField!
|
@IBOutlet var textUsername: UITextField!
|
||||||
|
|
||||||
@IBOutlet var textPassword: UITextField!
|
@IBOutlet var textPassword: UITextField!
|
||||||
|
@ -43,20 +67,10 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
@IBOutlet var buttonDownload: UIButton!
|
|
||||||
|
|
||||||
@IBOutlet var labelDownload: UILabel!
|
|
||||||
|
|
||||||
var currentManager: NETunnelProviderManager?
|
var currentManager: NETunnelProviderManager?
|
||||||
|
|
||||||
var status = NEVPNStatus.invalid
|
var status = NEVPNStatus.invalid
|
||||||
|
|
||||||
var downloadTask: URLSessionDataTask!
|
|
||||||
|
|
||||||
var downloadCount = 0
|
|
||||||
|
|
||||||
var downloadTimes = [TimeInterval]()
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
|
@ -114,37 +128,8 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
func connect() {
|
func connect() {
|
||||||
let server = textServer.text!
|
|
||||||
let domain = textDomain.text!
|
|
||||||
|
|
||||||
let hostname = ((domain == "") ? server : [server, domain].joined(separator: "."))
|
|
||||||
let port = UInt16(textPort.text!)!
|
|
||||||
let username = textUsername.text!
|
|
||||||
let password = textPassword.text!
|
|
||||||
|
|
||||||
configureVPN({ (manager) in
|
configureVPN({ (manager) in
|
||||||
// manager.isOnDemandEnabled = true
|
return self.makeProtocol()
|
||||||
// manager.onDemandRules = [NEOnDemandRuleConnect()]
|
|
||||||
|
|
||||||
let endpoint = PIATunnelProvider.AuthenticatedEndpoint(
|
|
||||||
hostname: hostname,
|
|
||||||
username: username,
|
|
||||||
password: password
|
|
||||||
)
|
|
||||||
|
|
||||||
var builder = PIATunnelProvider.ConfigurationBuilder(appGroup: ViewController.APP_GROUP)
|
|
||||||
let socketType: PIATunnelProvider.SocketType = (self.switchTCP.isOn ? .tcp : .udp)
|
|
||||||
builder.endpointProtocols = [PIATunnelProvider.EndpointProtocol(socketType, port, .vanilla)]
|
|
||||||
builder.cipher = ViewController.CIPHER
|
|
||||||
builder.digest = ViewController.DIGEST
|
|
||||||
builder.handshake = ViewController.HANDSHAKE
|
|
||||||
builder.mtu = 1350
|
|
||||||
builder.renegotiatesAfterSeconds = ViewController.RENEG
|
|
||||||
builder.shouldDebug = true
|
|
||||||
builder.debugLogKey = "Log"
|
|
||||||
|
|
||||||
let configuration = builder.build()
|
|
||||||
return try! configuration.generatedTunnelProtocol(withBundleIdentifier: ViewController.VPN_BUNDLE, endpoint: endpoint)
|
|
||||||
}, completionHandler: { (error) in
|
}, completionHandler: { (error) in
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("configure error: \(error)")
|
print("configure error: \(error)")
|
||||||
|
@ -161,7 +146,6 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
|
|
||||||
func disconnect() {
|
func disconnect() {
|
||||||
configureVPN({ (manager) in
|
configureVPN({ (manager) in
|
||||||
// manager.isOnDemandEnabled = false
|
|
||||||
return nil
|
return nil
|
||||||
}, completionHandler: { (error) in
|
}, completionHandler: { (error) in
|
||||||
self.currentManager?.connection.stopVPNTunnel()
|
self.currentManager?.connection.stopVPNTunnel()
|
||||||
|
@ -172,7 +156,7 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
guard let vpn = currentManager?.connection as? NETunnelProviderSession else {
|
guard let vpn = currentManager?.connection as? NETunnelProviderSession else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
try? vpn.sendProviderMessage(PIATunnelProvider.Message.requestLog.data) { (data) in
|
try? vpn.sendProviderMessage(TunnelKitProvider.Message.requestLog.data) { (data) in
|
||||||
guard let log = String(data: data!, encoding: .utf8) else {
|
guard let log = String(data: data!, encoding: .utf8) else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -180,57 +164,6 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func download() {
|
|
||||||
downloadCount = ViewController.DOWNLOAD_COUNT
|
|
||||||
downloadTimes.removeAll()
|
|
||||||
buttonDownload.isEnabled = false
|
|
||||||
labelDownload.text = ""
|
|
||||||
|
|
||||||
doDownload()
|
|
||||||
}
|
|
||||||
|
|
||||||
func doDownload() {
|
|
||||||
let url = URL(string: "https://example.bogus/test/100mb")!
|
|
||||||
var req = URLRequest(url: url)
|
|
||||||
req.httpMethod = "GET"
|
|
||||||
let cfg = URLSessionConfiguration.ephemeral
|
|
||||||
let sess = URLSession(configuration: cfg, delegate: self, delegateQueue: nil)
|
|
||||||
|
|
||||||
let start = Date()
|
|
||||||
downloadTask = sess.dataTask(with: req) { (data, response, error) in
|
|
||||||
if let error = error {
|
|
||||||
print("error downloading: \(error)")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
let elapsed = -start.timeIntervalSinceNow
|
|
||||||
print("download finished: \(elapsed) seconds")
|
|
||||||
self.downloadTimes.append(elapsed)
|
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
self.downloadCount -= 1
|
|
||||||
if (self.downloadCount > 0) {
|
|
||||||
self.labelDownload.text = "\(self.labelDownload.text!)\(elapsed) seconds\n"
|
|
||||||
self.doDownload()
|
|
||||||
} else {
|
|
||||||
var avg = 0.0
|
|
||||||
for n in self.downloadTimes {
|
|
||||||
avg += n
|
|
||||||
}
|
|
||||||
avg /= Double(ViewController.DOWNLOAD_COUNT)
|
|
||||||
|
|
||||||
self.labelDownload.text = "\(avg) seconds"
|
|
||||||
self.buttonDownload.isEnabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
downloadTask.resume()
|
|
||||||
}
|
|
||||||
|
|
||||||
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
|
|
||||||
print("received \(data.count) bytes")
|
|
||||||
}
|
|
||||||
|
|
||||||
func configureVPN(_ configure: @escaping (NETunnelProviderManager) -> NETunnelProviderProtocol?, completionHandler: @escaping (Error?) -> Void) {
|
func configureVPN(_ configure: @escaping (NETunnelProviderManager) -> NETunnelProviderProtocol?, completionHandler: @escaping (Error?) -> Void) {
|
||||||
reloadCurrentManager { (error) in
|
reloadCurrentManager { (error) in
|
||||||
if let error = error {
|
if let error = error {
|
||||||
|
@ -268,7 +201,7 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
|
|
||||||
for m in managers! {
|
for m in managers! {
|
||||||
if let p = m.protocolConfiguration as? NETunnelProviderProtocol {
|
if let p = m.protocolConfiguration as? NETunnelProviderProtocol {
|
||||||
if (p.providerBundleIdentifier == ViewController.VPN_BUNDLE) {
|
if (p.providerBundleIdentifier == ViewController.bundleIdentifier) {
|
||||||
manager = m
|
manager = m
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,28 +3,53 @@
|
||||||
// BasicTunnel-macOS
|
// BasicTunnel-macOS
|
||||||
//
|
//
|
||||||
// Created by Davide De Rosa on 10/15/17.
|
// Created by Davide De Rosa on 10/15/17.
|
||||||
// Copyright © 2018 London Trust Media. All rights reserved.
|
// Copyright © 2018 Davide De Rosa. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
import NetworkExtension
|
import NetworkExtension
|
||||||
import PIATunnel
|
import TunnelKit
|
||||||
|
|
||||||
|
extension ViewController {
|
||||||
|
private static let appGroup = "group.com.algoritmico.macos.demo.BasicTunnel"
|
||||||
|
|
||||||
|
private static let bundleIdentifier = "com.algoritmico.macos.demo.BasicTunnel.BasicTunnelExtension"
|
||||||
|
|
||||||
|
private func makeProtocol() -> NETunnelProviderProtocol {
|
||||||
|
let server = textServer.stringValue
|
||||||
|
let domain = textDomain.stringValue
|
||||||
|
|
||||||
|
let hostname = ((domain == "") ? server : [server, domain].joined(separator: "."))
|
||||||
|
let port = UInt16(textPort.stringValue)!
|
||||||
|
let username = textUsername.stringValue
|
||||||
|
let password = textPassword.stringValue
|
||||||
|
|
||||||
|
let endpoint = TunnelKitProvider.AuthenticatedEndpoint(
|
||||||
|
hostname: hostname,
|
||||||
|
username: username,
|
||||||
|
password: password
|
||||||
|
)
|
||||||
|
|
||||||
|
var builder = TunnelKitProvider.ConfigurationBuilder(appGroup: ViewController.appGroup)
|
||||||
|
// let socketType: TunnelKitProvider.SocketType = isTCP ? .tcp : .udp
|
||||||
|
let socketType: TunnelKitProvider.SocketType = .udp
|
||||||
|
builder.endpointProtocols = [TunnelKitProvider.EndpointProtocol(socketType, port)]
|
||||||
|
builder.cipher = .aes128cbc
|
||||||
|
builder.digest = .sha1
|
||||||
|
builder.mtu = 1350
|
||||||
|
builder.renegotiatesAfterSeconds = nil
|
||||||
|
builder.shouldDebug = true
|
||||||
|
builder.debugLogKey = "Log"
|
||||||
|
|
||||||
|
let configuration = builder.build()
|
||||||
|
return try! configuration.generatedTunnelProtocol(
|
||||||
|
withBundleIdentifier: ViewController.bundleIdentifier,
|
||||||
|
endpoint: endpoint
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class ViewController: NSViewController {
|
class ViewController: NSViewController {
|
||||||
static let APP_GROUP = "group.com.privateinternetaccess.macos.demo.BasicTunnel"
|
|
||||||
|
|
||||||
static let VPN_BUNDLE = "com.privateinternetaccess.macos.demo.BasicTunnel.BasicTunnelExtension"
|
|
||||||
|
|
||||||
static let CIPHER: PIATunnelProvider.Cipher = .aes128cbc
|
|
||||||
|
|
||||||
static let DIGEST: PIATunnelProvider.Digest = .sha1
|
|
||||||
|
|
||||||
static let HANDSHAKE: PIATunnelProvider.Handshake = .rsa2048
|
|
||||||
|
|
||||||
static let RENEG: Int? = nil
|
|
||||||
|
|
||||||
static let DOWNLOAD_COUNT = 5
|
|
||||||
|
|
||||||
@IBOutlet var textUsername: NSTextField!
|
@IBOutlet var textUsername: NSTextField!
|
||||||
|
|
||||||
@IBOutlet var textPassword: NSTextField!
|
@IBOutlet var textPassword: NSTextField!
|
||||||
|
@ -41,12 +66,6 @@ class ViewController: NSViewController {
|
||||||
|
|
||||||
var status = NEVPNStatus.invalid
|
var status = NEVPNStatus.invalid
|
||||||
|
|
||||||
var downloadTask: URLSessionDataTask!
|
|
||||||
|
|
||||||
var downloadCount = 0
|
|
||||||
|
|
||||||
var downloadTimes = [TimeInterval]()
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
|
@ -59,10 +78,12 @@ class ViewController: NSViewController {
|
||||||
textUsername.stringValue = "myusername"
|
textUsername.stringValue = "myusername"
|
||||||
textPassword.stringValue = "mypassword"
|
textPassword.stringValue = "mypassword"
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(self,
|
NotificationCenter.default.addObserver(
|
||||||
selector: #selector(VPNStatusDidChange(notification:)),
|
self,
|
||||||
name: .NEVPNStatusDidChange,
|
selector: #selector(VPNStatusDidChange(notification:)),
|
||||||
object: nil)
|
name: .NEVPNStatusDidChange,
|
||||||
|
object: nil
|
||||||
|
)
|
||||||
|
|
||||||
reloadCurrentManager(nil)
|
reloadCurrentManager(nil)
|
||||||
|
|
||||||
|
@ -96,38 +117,8 @@ class ViewController: NSViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
func connect() {
|
func connect() {
|
||||||
let server = textServer.stringValue
|
|
||||||
let domain = textDomain.stringValue
|
|
||||||
|
|
||||||
let hostname = ((domain == "") ? server : [server, domain].joined(separator: "."))
|
|
||||||
let port = UInt16(textPort.stringValue)!
|
|
||||||
let username = textUsername.stringValue
|
|
||||||
let password = textPassword.stringValue
|
|
||||||
|
|
||||||
configureVPN({ (manager) in
|
configureVPN({ (manager) in
|
||||||
// manager.isOnDemandEnabled = true
|
return self.makeProtocol()
|
||||||
// manager.onDemandRules = [NEOnDemandRuleConnect()]
|
|
||||||
|
|
||||||
let endpoint = PIATunnelProvider.AuthenticatedEndpoint(
|
|
||||||
hostname: hostname,
|
|
||||||
username: username,
|
|
||||||
password: password
|
|
||||||
)
|
|
||||||
|
|
||||||
var builder = PIATunnelProvider.ConfigurationBuilder(appGroup: ViewController.APP_GROUP)
|
|
||||||
// let socketType: PIATunnelProvider.SocketType = (self.switchTCP.isOn ? .tcp : .udp)
|
|
||||||
let socketType: PIATunnelProvider.SocketType = .udp
|
|
||||||
builder.endpointProtocols = [PIATunnelProvider.EndpointProtocol(socketType, port, .vanilla)]
|
|
||||||
builder.cipher = ViewController.CIPHER
|
|
||||||
builder.digest = ViewController.DIGEST
|
|
||||||
builder.handshake = ViewController.HANDSHAKE
|
|
||||||
builder.mtu = 1350
|
|
||||||
builder.renegotiatesAfterSeconds = ViewController.RENEG
|
|
||||||
builder.shouldDebug = true
|
|
||||||
builder.debugLogKey = "Log"
|
|
||||||
|
|
||||||
let configuration = builder.build()
|
|
||||||
return try! configuration.generatedTunnelProtocol(withBundleIdentifier: ViewController.VPN_BUNDLE, endpoint: endpoint)
|
|
||||||
}, completionHandler: { (error) in
|
}, completionHandler: { (error) in
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("configure error: \(error)")
|
print("configure error: \(error)")
|
||||||
|
@ -144,7 +135,6 @@ class ViewController: NSViewController {
|
||||||
|
|
||||||
func disconnect() {
|
func disconnect() {
|
||||||
configureVPN({ (manager) in
|
configureVPN({ (manager) in
|
||||||
// manager.isOnDemandEnabled = false
|
|
||||||
return nil
|
return nil
|
||||||
}, completionHandler: { (error) in
|
}, completionHandler: { (error) in
|
||||||
self.currentManager?.connection.stopVPNTunnel()
|
self.currentManager?.connection.stopVPNTunnel()
|
||||||
|
@ -188,7 +178,7 @@ class ViewController: NSViewController {
|
||||||
|
|
||||||
for m in managers! {
|
for m in managers! {
|
||||||
if let p = m.protocolConfiguration as? NETunnelProviderProtocol {
|
if let p = m.protocolConfiguration as? NETunnelProviderProtocol {
|
||||||
if (p.providerBundleIdentifier == ViewController.VPN_BUNDLE) {
|
if (p.providerBundleIdentifier == ViewController.bundleIdentifier) {
|
||||||
manager = m
|
manager = m
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.privateinternetaccess.ios.demo.BasicTunnel</string>
|
<string>group.com.algoritmico.ios.demo.BasicTunnel</string>
|
||||||
</array>
|
</array>
|
||||||
<key>keychain-access-groups</key>
|
<key>keychain-access-groups</key>
|
||||||
<array>
|
<array>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
// Copyright © 2018 London Trust Media. All rights reserved.
|
// Copyright © 2018 London Trust Media. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import PIATunnel
|
import TunnelKit
|
||||||
|
|
||||||
class PacketTunnelProvider: PIATunnelProvider {
|
class PacketTunnelProvider: TunnelKitProvider {
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
// Copyright © 2018 London Trust Media. All rights reserved.
|
// Copyright © 2018 London Trust Media. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import PIATunnel
|
import TunnelKit
|
||||||
|
|
||||||
class PacketTunnelProvider: PIATunnelProvider {
|
class PacketTunnelProvider: TunnelKitProvider {
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,10 +22,10 @@
|
||||||
0EB6EED41F92D43D005F6221 /* BasicTunnelExtension-macOS.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0EB6EECB1F92D43D005F6221 /* BasicTunnelExtension-macOS.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
0EB6EED41F92D43D005F6221 /* BasicTunnelExtension-macOS.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0EB6EECB1F92D43D005F6221 /* BasicTunnelExtension-macOS.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
0EB6EEDA1F92D4BA005F6221 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */; };
|
0EB6EEDA1F92D4BA005F6221 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */; };
|
||||||
0EE878F81F936469002A0D58 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */; };
|
0EE878F81F936469002A0D58 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */; };
|
||||||
3908146517D6E4FB2A9D937D /* Pods_iOS_BasicTunnelExtension_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 793C61EE3021675F5E1E7851 /* Pods_iOS_BasicTunnelExtension_iOS.framework */; };
|
1980C130D3B43C0024E59939 /* Pods_iOS_BasicTunnel_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 775CEE5DD8FFC11266A4D7F9 /* Pods_iOS_BasicTunnel_iOS.framework */; };
|
||||||
7A8E24264F7886297FF7360E /* Pods_iOS_BasicTunnel_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58CD8D66DB993CAA3D95BF58 /* Pods_iOS_BasicTunnel_iOS.framework */; };
|
39CD1A9C1AE5F4ABF30C4F97 /* Pods_macOS_BasicTunnelExtension_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62EFD8BCD07B20EF83F42763 /* Pods_macOS_BasicTunnelExtension_macOS.framework */; };
|
||||||
DDB7740C50825D06A90A8F85 /* Pods_macOS_BasicTunnel_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE4702495E15F3783163A9DD /* Pods_macOS_BasicTunnel_macOS.framework */; };
|
3FB7C2F3C8148BF145FD2EF5 /* Pods_iOS_BasicTunnelExtension_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61E77EB097E4DC1610F5E50F /* Pods_iOS_BasicTunnelExtension_iOS.framework */; };
|
||||||
ED81344C597F479F327D005F /* Pods_macOS_BasicTunnelExtension_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C5E38D0BFB111803E5B140 /* Pods_macOS_BasicTunnelExtension_macOS.framework */; };
|
F66522FC3C8356D4AE7D2428 /* Pods_macOS_BasicTunnel_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4F71774745704B9CF8E36C1 /* Pods_macOS_BasicTunnel_macOS.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
@ -95,18 +95,18 @@
|
||||||
0EB6EECF1F92D43D005F6221 /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = "<group>"; };
|
0EB6EECF1F92D43D005F6221 /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = "<group>"; };
|
||||||
0EB6EED11F92D43D005F6221 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
0EB6EED11F92D43D005F6221 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/NetworkExtension.framework; sourceTree = DEVELOPER_DIR; };
|
0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/NetworkExtension.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
5052DB12F617640E1D481436 /* Pods-iOS-BasicTunnel-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnel-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS.debug.xcconfig"; sourceTree = "<group>"; };
|
484C87261073EF01BDC404F8 /* Pods-iOS-BasicTunnel-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnel-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
58CD8D66DB993CAA3D95BF58 /* Pods_iOS_BasicTunnel_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_BasicTunnel_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
51B469FAC04F49DA76B86299 /* Pods-iOS-BasicTunnel-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnel-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
6435864DB434E6A2405C0A03 /* Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnelExtension-iOS/Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig"; sourceTree = "<group>"; };
|
5900D83A429B34C1A705C5B7 /* Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnelExtension-iOS/Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
644A04AFE7563DC48EFAF754 /* Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnelExtension-macOS/Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig"; sourceTree = "<group>"; };
|
61E77EB097E4DC1610F5E50F /* Pods_iOS_BasicTunnelExtension_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_BasicTunnelExtension_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
64C5E38D0BFB111803E5B140 /* Pods_macOS_BasicTunnelExtension_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macOS_BasicTunnelExtension_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
62EFD8BCD07B20EF83F42763 /* Pods_macOS_BasicTunnelExtension_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macOS_BasicTunnelExtension_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
793C61EE3021675F5E1E7851 /* Pods_iOS_BasicTunnelExtension_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_BasicTunnelExtension_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
775CEE5DD8FFC11266A4D7F9 /* Pods_iOS_BasicTunnel_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_BasicTunnel_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
86573C14FDBC5268162C4955 /* Pods-macOS-BasicTunnel-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnel-macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS.release.xcconfig"; sourceTree = "<group>"; };
|
B87BC309D14310866825A4CE /* Pods-macOS-BasicTunnel-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnel-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
9E2D2F7DF58A0C0F6427E281 /* Pods-iOS-BasicTunnel-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnel-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS.release.xcconfig"; sourceTree = "<group>"; };
|
BBFD61FA7BC0A2E0FE7FD2D5 /* Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnelExtension-macOS/Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
A288006EEDE2BE66F8448A44 /* Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnelExtension-macOS/Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig"; sourceTree = "<group>"; };
|
D1271C71EB65C3EA62965A19 /* Pods-macOS-BasicTunnel-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnel-macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
D43202F48A06F897845BB823 /* Pods-macOS-BasicTunnel-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnel-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS.debug.xcconfig"; sourceTree = "<group>"; };
|
DC82CED2F66990DD0622CC78 /* Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnelExtension-iOS/Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
EACBBF6B797755CE91FFFE75 /* Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS-BasicTunnelExtension-iOS/Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig"; sourceTree = "<group>"; };
|
E4A33190602EEF05A835166A /* Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-macOS-BasicTunnelExtension-macOS/Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
FE4702495E15F3783163A9DD /* Pods_macOS_BasicTunnel_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macOS_BasicTunnel_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
E4F71774745704B9CF8E36C1 /* Pods_macOS_BasicTunnel_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macOS_BasicTunnel_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
7A8E24264F7886297FF7360E /* Pods_iOS_BasicTunnel_iOS.framework in Frameworks */,
|
1980C130D3B43C0024E59939 /* Pods_iOS_BasicTunnel_iOS.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
3908146517D6E4FB2A9D937D /* Pods_iOS_BasicTunnelExtension_iOS.framework in Frameworks */,
|
3FB7C2F3C8148BF145FD2EF5 /* Pods_iOS_BasicTunnelExtension_iOS.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
0EB6EEDA1F92D4BA005F6221 /* NetworkExtension.framework in Frameworks */,
|
0EB6EEDA1F92D4BA005F6221 /* NetworkExtension.framework in Frameworks */,
|
||||||
DDB7740C50825D06A90A8F85 /* Pods_macOS_BasicTunnel_macOS.framework in Frameworks */,
|
F66522FC3C8356D4AE7D2428 /* Pods_macOS_BasicTunnel_macOS.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
0EE878F81F936469002A0D58 /* NetworkExtension.framework in Frameworks */,
|
0EE878F81F936469002A0D58 /* NetworkExtension.framework in Frameworks */,
|
||||||
ED81344C597F479F327D005F /* Pods_macOS_BasicTunnelExtension_macOS.framework in Frameworks */,
|
39CD1A9C1AE5F4ABF30C4F97 /* Pods_macOS_BasicTunnelExtension_macOS.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
0EB6EECC1F92D43D005F6221 /* BasicTunnelExtension-macOS */,
|
0EB6EECC1F92D43D005F6221 /* BasicTunnelExtension-macOS */,
|
||||||
0EB39FCE1F7424580023AFFC /* Products */,
|
0EB39FCE1F7424580023AFFC /* Products */,
|
||||||
B850E57E641AD1B37E79BAB5 /* Frameworks */,
|
B850E57E641AD1B37E79BAB5 /* Frameworks */,
|
||||||
34D3F90470498D814E74A5C6 /* Pods */,
|
94C1D7B5B11C6CCE74B21D93 /* Pods */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
@ -250,17 +250,17 @@
|
||||||
name = "Supporting files";
|
name = "Supporting files";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
34D3F90470498D814E74A5C6 /* Pods */ = {
|
94C1D7B5B11C6CCE74B21D93 /* Pods */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
5052DB12F617640E1D481436 /* Pods-iOS-BasicTunnel-iOS.debug.xcconfig */,
|
484C87261073EF01BDC404F8 /* Pods-iOS-BasicTunnel-iOS.debug.xcconfig */,
|
||||||
9E2D2F7DF58A0C0F6427E281 /* Pods-iOS-BasicTunnel-iOS.release.xcconfig */,
|
51B469FAC04F49DA76B86299 /* Pods-iOS-BasicTunnel-iOS.release.xcconfig */,
|
||||||
6435864DB434E6A2405C0A03 /* Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig */,
|
5900D83A429B34C1A705C5B7 /* Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig */,
|
||||||
EACBBF6B797755CE91FFFE75 /* Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig */,
|
DC82CED2F66990DD0622CC78 /* Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig */,
|
||||||
D43202F48A06F897845BB823 /* Pods-macOS-BasicTunnel-macOS.debug.xcconfig */,
|
B87BC309D14310866825A4CE /* Pods-macOS-BasicTunnel-macOS.debug.xcconfig */,
|
||||||
86573C14FDBC5268162C4955 /* Pods-macOS-BasicTunnel-macOS.release.xcconfig */,
|
D1271C71EB65C3EA62965A19 /* Pods-macOS-BasicTunnel-macOS.release.xcconfig */,
|
||||||
A288006EEDE2BE66F8448A44 /* Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig */,
|
E4A33190602EEF05A835166A /* Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig */,
|
||||||
644A04AFE7563DC48EFAF754 /* Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig */,
|
BBFD61FA7BC0A2E0FE7FD2D5 /* Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig */,
|
||||||
);
|
);
|
||||||
name = Pods;
|
name = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -269,10 +269,10 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */,
|
0EB6EED91F92D4BA005F6221 /* NetworkExtension.framework */,
|
||||||
58CD8D66DB993CAA3D95BF58 /* Pods_iOS_BasicTunnel_iOS.framework */,
|
775CEE5DD8FFC11266A4D7F9 /* Pods_iOS_BasicTunnel_iOS.framework */,
|
||||||
793C61EE3021675F5E1E7851 /* Pods_iOS_BasicTunnelExtension_iOS.framework */,
|
61E77EB097E4DC1610F5E50F /* Pods_iOS_BasicTunnelExtension_iOS.framework */,
|
||||||
FE4702495E15F3783163A9DD /* Pods_macOS_BasicTunnel_macOS.framework */,
|
E4F71774745704B9CF8E36C1 /* Pods_macOS_BasicTunnel_macOS.framework */,
|
||||||
64C5E38D0BFB111803E5B140 /* Pods_macOS_BasicTunnelExtension_macOS.framework */,
|
62EFD8BCD07B20EF83F42763 /* Pods_macOS_BasicTunnelExtension_macOS.framework */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -284,12 +284,12 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 0EB39FF51F7424F80023AFFC /* Build configuration list for PBXNativeTarget "BasicTunnel-iOS" */;
|
buildConfigurationList = 0EB39FF51F7424F80023AFFC /* Build configuration list for PBXNativeTarget "BasicTunnel-iOS" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
8654E3AEB3A2369E83089DE1 /* [CP] Check Pods Manifest.lock */,
|
C772E0EE406756CD998F1DFD /* [CP] Check Pods Manifest.lock */,
|
||||||
0EB39FE21F7424F80023AFFC /* Sources */,
|
0EB39FE21F7424F80023AFFC /* Sources */,
|
||||||
0EB39FE31F7424F80023AFFC /* Frameworks */,
|
0EB39FE31F7424F80023AFFC /* Frameworks */,
|
||||||
0EB39FE41F7424F80023AFFC /* Resources */,
|
0EB39FE41F7424F80023AFFC /* Resources */,
|
||||||
0EB3A0091F7425140023AFFC /* Embed App Extensions */,
|
0EB3A0091F7425140023AFFC /* Embed App Extensions */,
|
||||||
C01795F3F1E523D48472410F /* [CP] Embed Pods Frameworks */,
|
A3C198CD449DD5434CB4A22E /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -305,7 +305,7 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 0EB3A0061F7425140023AFFC /* Build configuration list for PBXNativeTarget "BasicTunnelExtension-iOS" */;
|
buildConfigurationList = 0EB3A0061F7425140023AFFC /* Build configuration list for PBXNativeTarget "BasicTunnelExtension-iOS" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
D83479D2193DDBE1F61F7994 /* [CP] Check Pods Manifest.lock */,
|
1D6B4C41FD2B3C5D8E3FA076 /* [CP] Check Pods Manifest.lock */,
|
||||||
0EB39FF81F7425140023AFFC /* Sources */,
|
0EB39FF81F7425140023AFFC /* Sources */,
|
||||||
0EB39FF91F7425140023AFFC /* Frameworks */,
|
0EB39FF91F7425140023AFFC /* Frameworks */,
|
||||||
0EB39FFA1F7425140023AFFC /* Resources */,
|
0EB39FFA1F7425140023AFFC /* Resources */,
|
||||||
|
@ -323,12 +323,12 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 0EB6EEC61F92D417005F6221 /* Build configuration list for PBXNativeTarget "BasicTunnel-macOS" */;
|
buildConfigurationList = 0EB6EEC61F92D417005F6221 /* Build configuration list for PBXNativeTarget "BasicTunnel-macOS" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
52FA651791DFCB2780F05CC0 /* [CP] Check Pods Manifest.lock */,
|
F1880CC3FE9FC942D0F802BA /* [CP] Check Pods Manifest.lock */,
|
||||||
0EB6EEB31F92D417005F6221 /* Sources */,
|
0EB6EEB31F92D417005F6221 /* Sources */,
|
||||||
0EB6EEB41F92D417005F6221 /* Frameworks */,
|
0EB6EEB41F92D417005F6221 /* Frameworks */,
|
||||||
0EB6EEB51F92D417005F6221 /* Resources */,
|
0EB6EEB51F92D417005F6221 /* Resources */,
|
||||||
0EB6EED81F92D43D005F6221 /* Embed App Extensions */,
|
0EB6EED81F92D43D005F6221 /* Embed App Extensions */,
|
||||||
C808C600FAEEFF648BCD5A99 /* [CP] Embed Pods Frameworks */,
|
AC2C3BCB219270755C04C726 /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -344,7 +344,7 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 0EB6EED51F92D43D005F6221 /* Build configuration list for PBXNativeTarget "BasicTunnelExtension-macOS" */;
|
buildConfigurationList = 0EB6EED51F92D43D005F6221 /* Build configuration list for PBXNativeTarget "BasicTunnelExtension-macOS" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
EEDE45EF0F6328D22A7732F5 /* [CP] Check Pods Manifest.lock */,
|
6A664C6A5F9D3538B3DA1207 /* [CP] Check Pods Manifest.lock */,
|
||||||
0EB6EEC71F92D43D005F6221 /* Sources */,
|
0EB6EEC71F92D43D005F6221 /* Sources */,
|
||||||
0EB6EEC81F92D43D005F6221 /* Frameworks */,
|
0EB6EEC81F92D43D005F6221 /* Frameworks */,
|
||||||
0EB6EEC91F92D43D005F6221 /* Resources */,
|
0EB6EEC91F92D43D005F6221 /* Resources */,
|
||||||
|
@ -488,96 +488,20 @@
|
||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
52FA651791DFCB2780F05CC0 /* [CP] Check Pods Manifest.lock */ = {
|
1D6B4C41FD2B3C5D8E3FA076 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
);
|
);
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
outputPaths = (
|
outputFileListPaths = (
|
||||||
"$(DERIVED_FILE_DIR)/Pods-macOS-BasicTunnel-macOS-checkManifestLockResult.txt",
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
8654E3AEB3A2369E83089DE1 /* [CP] Check Pods Manifest.lock */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
|
||||||
);
|
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
|
||||||
outputPaths = (
|
|
||||||
"$(DERIVED_FILE_DIR)/Pods-iOS-BasicTunnel-iOS-checkManifestLockResult.txt",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
C01795F3F1E523D48472410F /* [CP] Embed Pods Frameworks */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${SRCROOT}/Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS-frameworks.sh",
|
|
||||||
"${PODS_ROOT}/OpenSSL-Apple/frameworks/iPhone/openssl.framework",
|
|
||||||
"${BUILT_PRODUCTS_DIR}/PIATunnel-iOS/PIATunnel.framework",
|
|
||||||
"${BUILT_PRODUCTS_DIR}/SwiftyBeaver-iOS/SwiftyBeaver.framework",
|
|
||||||
);
|
|
||||||
name = "[CP] Embed Pods Frameworks";
|
|
||||||
outputPaths = (
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PIATunnel.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
C808C600FAEEFF648BCD5A99 /* [CP] Embed Pods Frameworks */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${SRCROOT}/Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS-frameworks.sh",
|
|
||||||
"${PODS_ROOT}/OpenSSL-Apple/frameworks/MacOSX/openssl.framework",
|
|
||||||
"${BUILT_PRODUCTS_DIR}/PIATunnel-macOS/PIATunnel.framework",
|
|
||||||
"${BUILT_PRODUCTS_DIR}/SwiftyBeaver-macOS/SwiftyBeaver.framework",
|
|
||||||
);
|
|
||||||
name = "[CP] Embed Pods Frameworks";
|
|
||||||
outputPaths = (
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PIATunnel.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
D83479D2193DDBE1F61F7994 /* [CP] Check Pods Manifest.lock */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
|
||||||
);
|
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"$(DERIVED_FILE_DIR)/Pods-iOS-BasicTunnelExtension-iOS-checkManifestLockResult.txt",
|
"$(DERIVED_FILE_DIR)/Pods-iOS-BasicTunnelExtension-iOS-checkManifestLockResult.txt",
|
||||||
);
|
);
|
||||||
|
@ -586,16 +510,20 @@
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
EEDE45EF0F6328D22A7732F5 /* [CP] Check Pods Manifest.lock */ = {
|
6A664C6A5F9D3538B3DA1207 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
);
|
);
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"$(DERIVED_FILE_DIR)/Pods-macOS-BasicTunnelExtension-macOS-checkManifestLockResult.txt",
|
"$(DERIVED_FILE_DIR)/Pods-macOS-BasicTunnelExtension-macOS-checkManifestLockResult.txt",
|
||||||
);
|
);
|
||||||
|
@ -604,6 +532,102 @@
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
|
A3C198CD449DD5434CB4A22E /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${SRCROOT}/Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS-frameworks.sh",
|
||||||
|
"${PODS_ROOT}/OpenSSL-Apple/frameworks/iPhone/openssl.framework",
|
||||||
|
"${BUILT_PRODUCTS_DIR}/SwiftyBeaver-iOS/SwiftyBeaver.framework",
|
||||||
|
"${BUILT_PRODUCTS_DIR}/TunnelKit-iOS/TunnelKit.framework",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TunnelKit.framework",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-iOS-BasicTunnel-iOS/Pods-iOS-BasicTunnel-iOS-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
AC2C3BCB219270755C04C726 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${SRCROOT}/Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS-frameworks.sh",
|
||||||
|
"${PODS_ROOT}/OpenSSL-Apple/frameworks/MacOSX/openssl.framework",
|
||||||
|
"${BUILT_PRODUCTS_DIR}/SwiftyBeaver-macOS/SwiftyBeaver.framework",
|
||||||
|
"${BUILT_PRODUCTS_DIR}/TunnelKit-macOS/TunnelKit.framework",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TunnelKit.framework",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-macOS-BasicTunnel-macOS/Pods-macOS-BasicTunnel-macOS-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
C772E0EE406756CD998F1DFD /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-iOS-BasicTunnel-iOS-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
F1880CC3FE9FC942D0F802BA /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-macOS-BasicTunnel-macOS-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
@ -797,15 +821,15 @@
|
||||||
};
|
};
|
||||||
0EB39FF61F7424F80023AFFC /* Debug */ = {
|
0EB39FF61F7424F80023AFFC /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 5052DB12F617640E1D481436 /* Pods-iOS-BasicTunnel-iOS.debug.xcconfig */;
|
baseConfigurationReference = 484C87261073EF01BDC404F8 /* Pods-iOS-BasicTunnel-iOS.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-iOS/BasicTunnel-iOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-iOS/BasicTunnel-iOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnel-iOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnel-iOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.ios.demo.BasicTunnel;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.demo.BasicTunnel;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
};
|
};
|
||||||
|
@ -813,15 +837,15 @@
|
||||||
};
|
};
|
||||||
0EB39FF71F7424F80023AFFC /* Release */ = {
|
0EB39FF71F7424F80023AFFC /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 9E2D2F7DF58A0C0F6427E281 /* Pods-iOS-BasicTunnel-iOS.release.xcconfig */;
|
baseConfigurationReference = 51B469FAC04F49DA76B86299 /* Pods-iOS-BasicTunnel-iOS.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-iOS/BasicTunnel-iOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-iOS/BasicTunnel-iOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnel-iOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnel-iOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.ios.demo.BasicTunnel;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.demo.BasicTunnel;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
};
|
};
|
||||||
|
@ -829,14 +853,14 @@
|
||||||
};
|
};
|
||||||
0EB3A0071F7425140023AFFC /* Debug */ = {
|
0EB3A0071F7425140023AFFC /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 6435864DB434E6A2405C0A03 /* Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig */;
|
baseConfigurationReference = 5900D83A429B34C1A705C5B7 /* Pods-iOS-BasicTunnelExtension-iOS.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-iOS/BasicTunnelExtension-iOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-iOS/BasicTunnelExtension-iOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnelExtension-iOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnelExtension-iOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.ios.demo.BasicTunnel.BasicTunnelExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.demo.BasicTunnel.BasicTunnelExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
@ -845,14 +869,14 @@
|
||||||
};
|
};
|
||||||
0EB3A0081F7425140023AFFC /* Release */ = {
|
0EB3A0081F7425140023AFFC /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = EACBBF6B797755CE91FFFE75 /* Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig */;
|
baseConfigurationReference = DC82CED2F66990DD0622CC78 /* Pods-iOS-BasicTunnelExtension-iOS.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-iOS/BasicTunnelExtension-iOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-iOS/BasicTunnelExtension-iOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnelExtension-iOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnelExtension-iOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.ios.demo.BasicTunnel.BasicTunnelExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.demo.BasicTunnel.BasicTunnelExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
@ -861,17 +885,17 @@
|
||||||
};
|
};
|
||||||
0EB6EEC41F92D417005F6221 /* Debug */ = {
|
0EB6EEC41F92D417005F6221 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = D43202F48A06F897845BB823 /* Pods-macOS-BasicTunnel-macOS.debug.xcconfig */;
|
baseConfigurationReference = B87BC309D14310866825A4CE /* Pods-macOS-BasicTunnel-macOS.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-macOS/BasicTunnel-macOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-macOS/BasicTunnel-macOS.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnel-macOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnel-macOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.macos.demo.BasicTunnel;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.demo.BasicTunnel;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
|
@ -880,17 +904,17 @@
|
||||||
};
|
};
|
||||||
0EB6EEC51F92D417005F6221 /* Release */ = {
|
0EB6EEC51F92D417005F6221 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 86573C14FDBC5268162C4955 /* Pods-macOS-BasicTunnel-macOS.release.xcconfig */;
|
baseConfigurationReference = D1271C71EB65C3EA62965A19 /* Pods-macOS-BasicTunnel-macOS.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-macOS/BasicTunnel-macOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnel-macOS/BasicTunnel-macOS.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnel-macOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnel-macOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.macos.demo.BasicTunnel;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.demo.BasicTunnel;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
|
@ -899,15 +923,15 @@
|
||||||
};
|
};
|
||||||
0EB6EED61F92D43D005F6221 /* Debug */ = {
|
0EB6EED61F92D43D005F6221 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = A288006EEDE2BE66F8448A44 /* Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig */;
|
baseConfigurationReference = E4A33190602EEF05A835166A /* Pods-macOS-BasicTunnelExtension-macOS.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-macOS/BasicTunnelExtension-macOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-macOS/BasicTunnelExtension-macOS.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnelExtension-macOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnelExtension-macOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.macos.demo.BasicTunnel.BasicTunnelExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.demo.BasicTunnel.BasicTunnelExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
|
@ -917,15 +941,15 @@
|
||||||
};
|
};
|
||||||
0EB6EED71F92D43D005F6221 /* Release */ = {
|
0EB6EED71F92D43D005F6221 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 644A04AFE7563DC48EFAF754 /* Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig */;
|
baseConfigurationReference = BBFD61FA7BC0A2E0FE7FD2D5 /* Pods-macOS-BasicTunnelExtension-macOS.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-macOS/BasicTunnelExtension-macOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "BasicTunnelExtension-macOS/BasicTunnelExtension-macOS.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = 5357M5NW9W;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
INFOPLIST_FILE = "BasicTunnelExtension-macOS/Info.plist";
|
INFOPLIST_FILE = "BasicTunnelExtension-macOS/Info.plist";
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.privateinternetaccess.macos.demo.BasicTunnel.BasicTunnelExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.demo.BasicTunnel.BasicTunnelExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
|
|
|
@ -5,7 +5,7 @@ abstract_target 'iOS' do
|
||||||
platform :ios, '9.0'
|
platform :ios, '9.0'
|
||||||
|
|
||||||
target 'BasicTunnelExtension-iOS' do
|
target 'BasicTunnelExtension-iOS' do
|
||||||
pod 'PIATunnel', :path => '..'
|
pod 'TunnelKit', :path => '..'
|
||||||
end
|
end
|
||||||
target 'BasicTunnel-iOS' do
|
target 'BasicTunnel-iOS' do
|
||||||
end
|
end
|
||||||
|
@ -15,7 +15,7 @@ abstract_target 'macOS' do
|
||||||
platform :osx, '10.11'
|
platform :osx, '10.11'
|
||||||
|
|
||||||
target 'BasicTunnelExtension-macOS' do
|
target 'BasicTunnelExtension-macOS' do
|
||||||
pod 'PIATunnel', :path => '..'
|
pod 'TunnelKit', :path => '..'
|
||||||
end
|
end
|
||||||
target 'BasicTunnel-macOS' do
|
target 'BasicTunnel-macOS' do
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
PODS:
|
PODS:
|
||||||
- OpenSSL-Apple (1.1.0h)
|
- OpenSSL-Apple (1.1.0h)
|
||||||
- PIATunnel (1.1.6):
|
- SwiftyBeaver (1.6.0)
|
||||||
- PIATunnel/AppExtension (= 1.1.6)
|
- TunnelKit (1.0.0):
|
||||||
- PIATunnel/Core (= 1.1.6)
|
- TunnelKit/AppExtension (= 1.0.0)
|
||||||
- PIATunnel/AppExtension (1.1.6):
|
- TunnelKit/Core (= 1.0.0)
|
||||||
- PIATunnel/Core
|
- TunnelKit/AppExtension (1.0.0):
|
||||||
- SwiftyBeaver
|
- SwiftyBeaver
|
||||||
- PIATunnel/Core (1.1.6):
|
- TunnelKit/Core
|
||||||
|
- TunnelKit/Core (1.0.0):
|
||||||
- OpenSSL-Apple (~> 1.1.0h)
|
- OpenSSL-Apple (~> 1.1.0h)
|
||||||
- SwiftyBeaver
|
- SwiftyBeaver
|
||||||
- SwiftyBeaver (1.6.0)
|
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- PIATunnel (from `..`)
|
- TunnelKit (from `..`)
|
||||||
|
|
||||||
SPEC REPOS:
|
SPEC REPOS:
|
||||||
https://github.com/cocoapods/specs.git:
|
https://github.com/cocoapods/specs.git:
|
||||||
|
@ -20,14 +20,14 @@ SPEC REPOS:
|
||||||
- SwiftyBeaver
|
- SwiftyBeaver
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
PIATunnel:
|
TunnelKit:
|
||||||
:path: ".."
|
:path: ".."
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
OpenSSL-Apple: cd153d705ef350eb834ae7ff5f21f792b51ed208
|
OpenSSL-Apple: cd153d705ef350eb834ae7ff5f21f792b51ed208
|
||||||
PIATunnel: b98780a58c8826bd82f1e15878078997ed172680
|
|
||||||
SwiftyBeaver: e45759613e50b522b0e6f53b1f0f14389b45ca34
|
SwiftyBeaver: e45759613e50b522b0e6f53b1f0f14389b45ca34
|
||||||
|
TunnelKit: 79e018dba82d9a2335daf5c55c473527cff52b73
|
||||||
|
|
||||||
PODFILE CHECKSUM: 1199e89f72f37e986463243abe5442ffdc81274c
|
PODFILE CHECKSUM: dbd445ce3249028c60f04276181924bb9bfc726d
|
||||||
|
|
||||||
COCOAPODS: 1.5.3
|
COCOAPODS: 1.5.3
|
||||||
|
|
Loading…
Reference in New Issue