diff --git a/.gitignore b/.gitignore index 6aef4412..26ce16e4 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,10 @@ ui_*.h Makefile* *build-* +# fastlane +client/fastlane/report.xml +client/fastlane/build/* + # Qt-es client/Release-iphoneos/ client/Debug-iphoneos/ diff --git a/client/fastlane/report.xml b/client/fastlane/report.xml index 760f5e96..2cd9cea9 100644 --- a/client/fastlane/report.xml +++ b/client/fastlane/report.xml @@ -5,52 +5,52 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/client/ios/app/Info.plist b/client/ios/app/Info.plist index f1065cbe..cfd8942d 100644 --- a/client/ios/app/Info.plist +++ b/client/ios/app/Info.plist @@ -25,7 +25,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 5 + 9 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/client/macos/networkextension/Info.plist b/client/macos/networkextension/Info.plist index 64bee284..6e063045 100644 --- a/client/macos/networkextension/Info.plist +++ b/client/macos/networkextension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 5 + 9 ITSAppUsesNonExemptEncryption LSMinimumSystemVersion diff --git a/client/platforms/ios/iosopenvpn2ssadapter.m b/client/platforms/ios/iosopenvpn2ssadapter.m index 713b5d5c..dcf4e249 100644 --- a/client/platforms/ios/iosopenvpn2ssadapter.m +++ b/client/platforms/ios/iosopenvpn2ssadapter.m @@ -76,6 +76,7 @@ static void SocketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData - (void)dealloc { [self invalidateSocketsIfNeeded]; + [super dealloc]; } # pragma mark - Socket configuration diff --git a/client/platforms/ios/iostunnel.swift b/client/platforms/ios/iostunnel.swift index 7ca5449b..5209306d 100644 --- a/client/platforms/ios/iostunnel.swift +++ b/client/platforms/ios/iostunnel.swift @@ -3,7 +3,7 @@ import NetworkExtension import os import Darwin import OpenVPNAdapter -import Tun2socks +//import Tun2socks enum TunnelProtoType: String { case wireguard, openvpn, shadowsocks, none @@ -58,17 +58,17 @@ class PacketTunnelProvider: NEPacketTunnelProvider { private var openVPNConfig: Data? = nil var ssCompletion: ShadowsocksProxyCompletion = nil - private var ssProvider: ShadowSocksTunnel? = nil - private var ssLocalPort: Int = 8585 - private var ssRemoteHost = "" - private var leafProvider: TunProvider? = nil - - private var tun2socksTunnel: Tun2socksOutlineTunnelProtocol? = nil - private var tun2socksWriter: Tun2socksTunWriter? = nil - private let processQueue = DispatchQueue(label: Constants.processQueueName) - private var connection: NWTCPConnection? = nil - private var session: NWUDPSession? = nil - private var observer: AnyObject? +// private var ssProvider: ShadowSocksTunnel? = nil +// private var ssLocalPort: Int = 8585 +// private var ssRemoteHost = "" +// private var leafProvider: TunProvider? = nil +// +// private var tun2socksTunnel: Tun2socksOutlineTunnelProtocol? = nil +// private var tun2socksWriter: Tun2socksTunWriter? = nil +// private let processQueue = DispatchQueue(label: Constants.processQueueName) +// private var connection: NWTCPConnection? = nil +// private var session: NWUDPSession? = nil +// private var observer: AnyObject? let vpnReachability = OpenVPNReachability() @@ -99,7 +99,8 @@ class PacketTunnelProvider: NEPacketTunnelProvider { case .openvpn: startOpenVPN(completionHandler: completionHandler) case .shadowsocks: - startShadowSocks(completionHandler: completionHandler) + break +// startShadowSocks(completionHandler: completionHandler) case .none: break } @@ -112,7 +113,8 @@ class PacketTunnelProvider: NEPacketTunnelProvider { case .openvpn: stopOpenVPN(with: reason, completionHandler: completionHandler) case .shadowsocks: - stopShadowSocks(with: reason, completionHandler: completionHandler) + break +// stopShadowSocks(with: reason, completionHandler: completionHandler) case .none: break } @@ -125,7 +127,8 @@ class PacketTunnelProvider: NEPacketTunnelProvider { case .openvpn: handleWireguardAppMessage(messageData, completionHandler: completionHandler) case .shadowsocks: - handleShadowSocksAppMessage(messageData, completionHandler: completionHandler) + break +// handleShadowSocksAppMessage(messageData, completionHandler: completionHandler) case .none: break } @@ -195,7 +198,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { setupAndlaunchOpenVPN(withConfig: ovpnConfiguration, completionHandler: completionHandler) } - +/* private func startShadowSocks(completionHandler: @escaping (Error?) -> Void) { guard let protocolConfiguration = self.protocolConfiguration as? NETunnelProviderProtocol, let providerConfiguration = protocolConfiguration.providerConfiguration, @@ -212,7 +215,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { // startTun2SocksTunnel(completion: completionHandler) self.startLeafRedirector(completion: completionHandler) } - +*/ private func stopWireguard(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) { wg_log(.info, staticMessage: "Stopping tunnel") @@ -240,7 +243,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } ovpnAdapter.disconnect() } - +/* private func stopShadowSocks(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) { stopOpenVPN(with: reason) { [weak self] in guard let `self` = self else { return } @@ -249,7 +252,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { self.stopLeafRedirector(completion: completionHandler) } } - +*/ private func handleWireguardAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)? = nil) { guard let completionHandler = completionHandler else { return } if messageData.count == 1 && messageData[0] == 0 { @@ -294,7 +297,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } } - +/* private func handleShadowSocksAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)? = nil) { guard let completionHandler = completionHandler else { return } if let configString = String(data: messageData, encoding: .utf8) { @@ -303,9 +306,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider { completionHandler(messageData) } - +*/ // MARK: -- Tun2sock provider methods - +/* private func startTun2SocksTunnel(completion: @escaping (Error?) -> Void) { guard let ssConfiguration = self.shadowSocksConfig, let ovpnConfiguration = self.openVPNConfig, @@ -397,7 +400,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } } } - + // MARK: -- Leaf provider methods private func prepareConfig(onInterface iface: String, fromSSConfig ssConfig: Data, andOvpnConfig ovpnConfig: Data) -> UnsafePointer? { @@ -420,9 +423,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider { var insettings: [String: Any] = .init() insettings["name"] = iface - insettings["address"] = "10.8.0.4" + insettings["address"] = "127.0.0.2" insettings["netmask"] = "255.255.255.0" - insettings["gateway"] = "10.8.0.1" + insettings["gateway"] = "127.0.0.1" insettings["mtu"] = 1600 var inbounds: [String: Any] = .init() @@ -469,22 +472,15 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } private func startLeafRedirector(completion: @escaping (Error?) -> Void) { - let ipv4settings: NEIPv4Settings = .init(addresses: ["10.8.0.4"], subnetMasks: ["255.255.255.0"]) + let ipv4settings: NEIPv4Settings = .init(addresses: ["127.0.0.2"], subnetMasks: ["255.255.255.0"]) ipv4settings.includedRoutes = [.default()] ipv4settings.excludedRoutes = [] let dnsSettings: NEDNSSettings = .init(servers: ["1.1.1.1", "9.9.9.9", "208.67.222.222", "208.67.220.220"]) dnsSettings.matchDomains = [] - let proxySettings: NEProxySettings = .init() - proxySettings.httpEnabled = true - proxySettings.httpServer = .init(address: "localhost", port: 8585) - proxySettings.httpsEnabled = true - proxySettings.httpsServer = .init(address: "localhost", port: 8585) - proxySettings.excludeSimpleHostnames = true - let settings: NEPacketTunnelNetworkSettings = .init(tunnelRemoteAddress: "10.8.0.1") + let settings: NEPacketTunnelNetworkSettings = .init(tunnelRemoteAddress: "127.0.0.1") settings.ipv4Settings = ipv4settings settings.dnsSettings = dnsSettings - settings.proxySettings = proxySettings settings.mtu = 1600 self.setTunnelNetworkSettings(settings) { tunError in @@ -567,38 +563,42 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } private func startAndHandleTunnelOverSS(completionHandler: @escaping (Error?) -> Void) { - let ipv4settings: NEIPv4Settings = .init(addresses: ["192.0.2.2"], subnetMasks: ["255.255.255.0"]) - ipv4settings.includedRoutes = [.default()] - ipv4settings.excludedRoutes = [] +// let ipv4settings: NEIPv4Settings = .init(addresses: ["192.0.2.2"], subnetMasks: ["255.255.255.0"]) +// let addedRoute1 = NEIPv4Route(destinationAddress: "0.0.0.0", subnetMask: "0.0.0.0") +// addedRoute1.gatewayAddress = "192.0.2.1" +// ipv4settings.includedRoutes = [addedRoute1] +// ipv4settings.excludedRoutes = [] +// +// let dnsSettings: NEDNSSettings = .init(servers: ["1.1.1.1", "9.9.9.9", "208.67.222.222", "208.67.220.220"]) +// let settings: NEPacketTunnelNetworkSettings = .init(tunnelRemoteAddress: "192.0.2.1") +// settings.ipv4Settings = ipv4settings +// settings.dnsSettings = dnsSettings +// settings.mtu = 1600 +// +// setTunnelNetworkSettings(settings) { tunError in +// +// } - let dnsSettings: NEDNSSettings = .init(servers: ["1.1.1.1", "9.9.9.9", "208.67.222.222", "208.67.220.220"]) - let settings: NEPacketTunnelNetworkSettings = .init(tunnelRemoteAddress: "192.0.2.1") - settings.ipv4Settings = ipv4settings - settings.dnsSettings = dnsSettings - settings.mtu = 1600 + let ifaces = Interface.allInterfaces() + .filter { $0.family == .ipv4 } + .map { iface in iface.name } - setTunnelNetworkSettings(settings) { tunError in - let ifaces = Interface.allInterfaces() - .filter { $0.family == .ipv4 } - .map { iface in iface.name } - - wg_log(.error, message: "Available TUN Interfaces: \(ifaces)") - let endpoint = NWHostEndpoint(hostname: "127.0.0.1", port: "\(self.ssLocalPort)") - self.session = self.createUDPSession(to: endpoint, from: nil) - self.observer = self.session!.observe(\.state, options: [.new]) { conn, _ in - switch conn.state { - case .ready: - self.setupWriteToFlow() - self.readFromFlow() + wg_log(.error, message: "Available TUN Interfaces: \(ifaces)") + let endpoint = NWHostEndpoint(hostname: "127.0.0.1", port: "\(self.ssLocalPort)") + self.session = self.createUDPSession(to: endpoint, from: nil) + self.setupWriteToFlow() + self.observer = self.session!.observe(\.state, options: [.new]) { conn, _ in + switch conn.state { + case .ready: + self.readFromFlow() + completionHandler(nil) + case .cancelled, .failed, .invalid: + self.stopSSProvider { + self.cancelTunnelWithError(nil) completionHandler(nil) - case .cancelled, .failed, .invalid: - self.stopSSProvider { - self.cancelTunnelWithError(nil) - completionHandler(nil) - } - default: - break } + default: + break } } } @@ -685,7 +685,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { completionHandler() } } - +*/ private func setupAndlaunchOpenVPN(withConfig ovpnConfiguration: Data, withShadowSocks viaSS: Bool = false, completionHandler: @escaping (Error?) -> Void) { wg_log(.info, message: "Inside setupAndlaunchOpenVPN()") let str = String(decoding: ovpnConfiguration, as: UTF8.self) @@ -798,7 +798,7 @@ extension WireGuardLogLevel { extension NEPacketTunnelFlow: OpenVPNAdapterPacketFlow {} -extension NEPacketTunnelFlow: ShadowSocksAdapterPacketFlow {} +/* extension NEPacketTunnelFlow: ShadowSocksAdapterPacketFlow {} */ extension PacketTunnelProvider: OpenVPNAdapterDelegate { @@ -877,7 +877,7 @@ extension PacketTunnelProvider: OpenVPNAdapterDelegate { wg_log(.info, message: logMessage) } } - +/* extension PacketTunnelProvider: Tun2socksTunWriterProtocol { func write(_ p0: Data?, n: UnsafeMutablePointer?) throws { if let packets = p0 { @@ -887,3 +887,4 @@ extension PacketTunnelProvider: Tun2socksTunWriterProtocol { func close() throws {} } +*/ diff --git a/client/platforms/ios/iosvpnprotocol.swift b/client/platforms/ios/iosvpnprotocol.swift index fc5c5ed1..2c028915 100644 --- a/client/platforms/ios/iosvpnprotocol.swift +++ b/client/platforms/ios/iosvpnprotocol.swift @@ -297,7 +297,7 @@ public class IOSVpnProtocolImpl : NSObject { ovpnConfig: String, failureCallback: @escaping () -> Void) { Logger.global?.log(message: "Connecting") - assert(tunnel != nil) +// assert(tunnel != nil) self.openVPNConfig = ovpnConfig self.shadowSocksConfig = ssConfig @@ -316,7 +316,7 @@ public class IOSVpnProtocolImpl : NSObject { @objc func connect(ovpnConfig: String, failureCallback: @escaping () -> Void) { Logger.global?.log(message: "Connecting") - assert(tunnel != nil) +// assert(tunnel != nil) let addr: String = ovpnConfig .splitToArray(separator: "\n", trimmingCharacters: nil) @@ -332,7 +332,7 @@ public class IOSVpnProtocolImpl : NSObject { @objc func connect(dnsServer: String, serverIpv6Gateway: String, serverPublicKey: String, presharedKey: String, serverIpv4AddrIn: String, serverPort: Int, allowedIPAddressRanges: Array, ipv6Enabled: Bool, reason: Int, failureCallback: @escaping () -> Void) { Logger.global?.log(message: "Connecting") - assert(tunnel != nil) +// assert(tunnel != nil) // Let's remove the previous config if it exists. (tunnel?.protocolConfiguration as? NETunnelProviderProtocol)?.destroyConfigurationReference() @@ -526,7 +526,7 @@ public class IOSVpnProtocolImpl : NSObject { @objc func checkStatus(callback: @escaping (String, String, String) -> Void) { Logger.global?.log(message: "Check status") - assert(tunnel != nil) +// assert(tunnel != nil) let protoType = (tunnel!.localizedDescription ?? "").toTunnelType diff --git a/client/platforms/ios/ssprovider.swift b/client/platforms/ios/ssprovider.swift index 3071f6dd..5d503a0a 100644 --- a/client/platforms/ios/ssprovider.swift +++ b/client/platforms/ios/ssprovider.swift @@ -1,5 +1,6 @@ import Foundation import ShadowSocks + import NetworkExtension import Darwin diff --git a/client/platforms/ios/tun2sockswriter.swift b/client/platforms/ios/tun2sockswriter.swift index faf65583..43793865 100644 --- a/client/platforms/ios/tun2sockswriter.swift +++ b/client/platforms/ios/tun2sockswriter.swift @@ -3,19 +3,19 @@ import NetworkExtension import Tun2socks class AmneziaTun2SocksWriter: NSObject, Tun2socksTunWriterProtocol { - var tunnelFlow: NEPacketTunnelFlow + var tunnelFlow: NEPacketTunnelFlow - init( withPacketFlow nepflow: NEPacketTunnelFlow) { - self.tunnelFlow = nepflow - super.init() - } + init( withPacketFlow nepflow: NEPacketTunnelFlow) { + self.tunnelFlow = nepflow + super.init() + } - func write(_ p0: Data?, n: UnsafeMutablePointer?) throws { - if let packets = p0 { - tunnelFlow.writePackets([packets], withProtocols: [NSNumber(value: PF_INET)]) - } - } + func write(_ p0: Data?, n: UnsafeMutablePointer?) throws { + if let packets = p0 { + tunnelFlow.writePackets([packets], withProtocols: [NSNumber(value: PF_INET)]) + } + } - func close() throws {} + func close() throws {} } diff --git a/client/protocols/ios_vpnprotocol.h b/client/protocols/ios_vpnprotocol.h index 2e0f2759..2b2971f1 100644 --- a/client/protocols/ios_vpnprotocol.h +++ b/client/protocols/ios_vpnprotocol.h @@ -47,6 +47,8 @@ private: bool m_checkingStatus = false; std::function m_logCallback; + bool m_isChangingState = false; + void setupWireguardProtocol(const QtJson::JsonObject& result); void setupOpenVPNProtocol(const QtJson::JsonObject& result); void setupShadowSocksProtocol(const QtJson::JsonObject& result); diff --git a/client/protocols/ios_vpnprotocol.mm b/client/protocols/ios_vpnprotocol.mm index 9d3132a0..eca23015 100644 --- a/client/protocols/ios_vpnprotocol.mm +++ b/client/protocols/ios_vpnprotocol.mm @@ -80,6 +80,9 @@ ErrorCode IOSVpnProtocol::start() return InternalError; } + if (m_isChangingState) + return NoError; + QString protocol = result["protocol"].toString(); if (!m_controller) @@ -145,6 +148,7 @@ void IOSVpnProtocol::stop() } [m_controller disconnect]; + dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Disconnected); }); @@ -301,6 +305,7 @@ void IOSVpnProtocol::setupWireguardProtocol(const QtJson::JsonObject &result) m_controller = nullptr; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Error); + m_isChangingState = false; }); return; } @@ -309,6 +314,7 @@ void IOSVpnProtocol::setupWireguardProtocol(const QtJson::JsonObject &result) // QDateTime qtDate(QDateTime::fromNSDate(date)); dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Connected); + m_isChangingState = false; }); return; } @@ -317,6 +323,7 @@ void IOSVpnProtocol::setupWireguardProtocol(const QtJson::JsonObject &result) [m_controller disconnect]; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Disconnected); + m_isChangingState = false; }); return; } @@ -330,12 +337,14 @@ void IOSVpnProtocol::setupWireguardProtocol(const QtJson::JsonObject &result) if (a_connected) { dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Connected); + m_isChangingState = false; }); return; } -// dispatch_async(dispatch_get_main_queue(), ^{ -// emit connectionStateChanged(Disconnected); -// }); + dispatch_async(dispatch_get_main_queue(), ^{ + emit connectionStateChanged(Disconnected); + m_isChangingState = false; + }); }]; } @@ -362,6 +371,7 @@ void IOSVpnProtocol::setupOpenVPNProtocol(const QtJson::JsonObject &result) m_controller = nullptr; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Error); + m_isChangingState = false; }); return; } @@ -370,6 +380,7 @@ void IOSVpnProtocol::setupOpenVPNProtocol(const QtJson::JsonObject &result) // QDateTime qtDate(QDateTime::fromNSDate(date)); dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Connected); + m_isChangingState = false; }); return; } @@ -378,6 +389,7 @@ void IOSVpnProtocol::setupOpenVPNProtocol(const QtJson::JsonObject &result) // [m_controller disconnect]; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Disconnected); + m_isChangingState = false; }); return; } @@ -391,12 +403,14 @@ void IOSVpnProtocol::setupOpenVPNProtocol(const QtJson::JsonObject &result) if (a_connected) { dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Connected); + m_isChangingState = false; }); return; } -// dispatch_async(dispatch_get_main_queue(), ^{ -// emit connectionStateChanged(Disconnected); -// }); + dispatch_async(dispatch_get_main_queue(), ^{ + emit connectionStateChanged(Disconnected); + m_isChangingState = false; + }); }]; } @@ -425,6 +439,7 @@ void IOSVpnProtocol::setupShadowSocksProtocol(const QtJson::JsonObject &result) m_controller = nullptr; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Error); + m_isChangingState = false; }); return; } @@ -433,6 +448,7 @@ void IOSVpnProtocol::setupShadowSocksProtocol(const QtJson::JsonObject &result) // QDateTime qtDate(QDateTime::fromNSDate(date)); dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Connected); + m_isChangingState = false; }); return; } @@ -441,6 +457,7 @@ void IOSVpnProtocol::setupShadowSocksProtocol(const QtJson::JsonObject &result) // [m_controller disconnect]; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(VpnConnectionState::Disconnected); + m_isChangingState = false; }); return; } @@ -454,12 +471,14 @@ void IOSVpnProtocol::setupShadowSocksProtocol(const QtJson::JsonObject &result) if (a_connected) { dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Connected); + m_isChangingState = false; }); return; } - // dispatch_async(dispatch_get_main_queue(), ^{ - // emit connectionStateChanged(Disconnected); - // }); + dispatch_async(dispatch_get_main_queue(), ^{ + emit connectionStateChanged(Disconnected); + m_isChangingState = false; + }); }]; } @@ -516,6 +535,7 @@ void IOSVpnProtocol::launchWireguardTunnel(const QtJson::JsonObject &result) qDebug() << "Wireguard Protocol - connection failed"; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Disconnected); + m_isChangingState = false; }); }]; } @@ -530,6 +550,7 @@ void IOSVpnProtocol::launchOpenVPNTunnel(const QtJson::JsonObject &result) qDebug() << "IOSVPNProtocol (OpenVPN) - connection failed"; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Disconnected); + m_isChangingState = false; }); }]; } @@ -546,6 +567,7 @@ void IOSVpnProtocol::launchShadowSocksTunnel(const QtJson::JsonObject &result) { qDebug() << "IOSVPNProtocol (ShadowSocks) - connection failed"; dispatch_async(dispatch_get_main_queue(), ^{ emit connectionStateChanged(Disconnected); + m_isChangingState = false; }); }]; } diff --git a/client/scripts/xcode_patcher.rb b/client/scripts/xcode_patcher.rb index e4c92bf4..4f38f3e7 100644 --- a/client/scripts/xcode_patcher.rb +++ b/client/scripts/xcode_patcher.rb @@ -71,10 +71,10 @@ class XCodeprojPatcher "$(inherited)", "$(PROJECT_DIR)/3rd", "$(PROJECT_DIR)/3rd/OpenVPNAdapter/build/Release-iphoneos", - "$(PROJECT_DIR)/3rd/ShadowSocks/build/Release-iphoneos", +# "$(PROJECT_DIR)/3rd/ShadowSocks/build/Release-iphoneos", # "$(PROJECT_DIR)/3rd/PacketProcessor/build/Release-iphoneos", - "$(PROJECT_DIR)/3rd/outline-go-tun2socks/build/ios", - "${PROJECT_DIR}/3rd/CocoaAsyncSocket/build/Release-iphoneos", +# "$(PROJECT_DIR)/3rd/outline-go-tun2socks/build/ios", +# "${PROJECT_DIR}/3rd/CocoaAsyncSocket/build/Release-iphoneos", # "${PROJECT_DIR}/3rd/CocoaLumberjack/build/Release-iphoneos", ] @@ -279,13 +279,14 @@ class XCodeprojPatcher "$(inherited)", "$(PROJECT_DIR)/3rd", "$(PROJECT_DIR)/3rd/OpenVPNAdapter/build/Release-iphoneos", - "$(PROJECT_DIR)/3rd/libleaf/include", - "$(PROJECT_DIR)/3rd/ShadowSocks/build/Release-iphoneos", +# "$(PROJECT_DIR)/3rd/libleaf/lib", +# "$(PROJECT_DIR)/3rd/ShadowSocks/build/Release-iphoneos", # "$(PROJECT_DIR)/3rd/PacketProcessor/build/Release-iphoneos", - "$(PROJECT_DIR)/3rd/outline-go-tun2socks/build/ios", - "${PROJECT_DIR}/3rd/CocoaAsyncSocket/build/Release-iphoneos", +# "$(PROJECT_DIR)/3rd/outline-go-tun2socks/build/ios", +# "${PROJECT_DIR}/3rd/CocoaAsyncSocket/build/Release-iphoneos", # "${PROJECT_DIR}/3rd/CocoaLumberjack/build/Release-iphoneos", ] +# config.build_settings['LIBRARY_SEARCH_PATHS'] = [config.build_settings['LIBRARY_SEARCH_PATHS'], "$(PROJECT_DIR)/3rd/libleaf/lib"] # Versions and names config.build_settings['MARKETING_VERSION'] ||= shortVersion @@ -370,17 +371,17 @@ class XCodeprojPatcher 'platforms/ios/iostunnel.swift', 'platforms/ios/ioslogger.swift', 'platforms/ios/iosinterface.swift', - 'platforms/ios/ssprovider.swift', +# 'platforms/ios/ssprovider.swift', 'platforms/ios/iosglue.mm', - 'platforms/ios/ssconnectivity.h', - 'platforms/ios/ssconnectivity.m', - 'platforms/ios/iosopenvpn2ssadapter.h', - 'platforms/ios/iosopenvpn2ssadapter.m', - 'platforms/ios/sspacket.h', - 'platforms/ios/sspacket.m', - 'platforms/ios/ssadapterpacketflow.h', - 'platforms/ios/tun2ssprovider.swift', - 'platforms/ios/tun2sockswriter.swift', +# 'platforms/ios/ssconnectivity.h', +# 'platforms/ios/ssconnectivity.m', +# 'platforms/ios/iosopenvpn2ssadapter.h', +# 'platforms/ios/iosopenvpn2ssadapter.m', +# 'platforms/ios/sspacket.h', +# 'platforms/ios/sspacket.m', +# 'platforms/ios/ssadapterpacketflow.h', +# 'platforms/ios/tun2ssprovider.swift', +# 'platforms/ios/tun2sockswriter.swift', ].each { |filename| file = group.new_file(filename) @target_extension.add_file_references([file]) @@ -394,32 +395,32 @@ class XCodeprojPatcher framework_ref = frameworks_group.new_file('libwg-go.a') frameworks_build_phase.add_file_reference(framework_ref) - framework_ref = frameworks_group.new_file('3rd/libleaf/lib/libleaf.a') - frameworks_build_phase.add_file_reference(framework_ref) +# framework_ref = frameworks_group.new_file('3rd/libleaf/lib/libleaf.a') +# frameworks_build_phase.add_file_reference(framework_ref) framework_ref = frameworks_group.new_file('NetworkExtension.framework') frameworks_build_phase.add_file_reference(framework_ref) - framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/LZ4.framework') - frameworks_build_phase.add_file_reference(framework_ref) - - framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/mbedTLS.framework') - frameworks_build_phase.add_file_reference(framework_ref) - - framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNClient.framework') - frameworks_build_phase.add_file_reference(framework_ref) +# framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/LZ4.framework') +# frameworks_build_phase.add_file_reference(framework_ref) +# +# framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/mbedTLS.framework') +# frameworks_build_phase.add_file_reference(framework_ref) +# +# framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNClient.framework') +# frameworks_build_phase.add_file_reference(framework_ref) framework_ref = frameworks_group.new_file('3rd/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework') frameworks_build_phase.add_file_reference(framework_ref) - framework_ref = frameworks_group.new_file('3rd/ShadowSocks/build/Release-iphoneos/ShadowSocks.framework') - frameworks_build_phase.add_file_reference(framework_ref) - - framework_ref = frameworks_group.new_file('3rd/CocoaAsyncSocket/build/Release-iphoneos/CocoaAsyncSocket.framework') - frameworks_build_phase.add_file_reference(framework_ref) - - framework_ref = frameworks_group.new_file('3rd/outline-go-tun2socks/build/ios/Tun2socks.xcframework') - frameworks_build_phase.add_file_reference(framework_ref) +# framework_ref = frameworks_group.new_file('3rd/ShadowSocks/build/Release-iphoneos/ShadowSocks.framework') +# frameworks_build_phase.add_file_reference(framework_ref) +# +# framework_ref = frameworks_group.new_file('3rd/CocoaAsyncSocket/build/Release-iphoneos/CocoaAsyncSocket.framework') +# frameworks_build_phase.add_file_reference(framework_ref) +# +# framework_ref = frameworks_group.new_file('3rd/outline-go-tun2socks/build/ios/Tun2socks.xcframework') +# frameworks_build_phase.add_file_reference(framework_ref) # framework_ref = frameworks_group.new_file('3rd/CocoaLumberjack/build/Release-iphoneos/CocoaLumberjack.framework') # frameworks_build_phase.add_file_reference(framework_ref) diff --git a/client/version.pri b/client/version.pri index 68dc636d..e349c3fa 100644 --- a/client/version.pri +++ b/client/version.pri @@ -1,5 +1,6 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. +# current version 2.0.8 -!defined(VERSION, var):VERSION = 2 +!defined(VERSION, var):VERSION = 2.0.8 diff --git a/client/versionfull.pri b/client/versionfull.pri index bdfc533c..45d9811f 100644 --- a/client/versionfull.pri +++ b/client/versionfull.pri @@ -1 +1,2 @@ -!defined(BUILDVERSION, var):BUILDVERSION = 5 \ No newline at end of file +# current build 7 +!defined(BUILDVERSION, var):BUILDVERSION = 9 \ No newline at end of file