Add tvOS support
- Upgrade OpenSSL for tvOS Simulator on arm64 - Use own WireGuard fork on develop Closes #337
This commit is contained in:
parent
c56bfd7224
commit
6101e92c3b
|
@ -23,8 +23,8 @@ jobs:
|
|||
- name: Run tests
|
||||
run: |
|
||||
swift test
|
||||
publish_release:
|
||||
name: Tag release
|
||||
publish_version:
|
||||
name: Publish release
|
||||
runs-on: ubuntu-latest
|
||||
needs: run_tests
|
||||
steps:
|
||||
|
@ -49,7 +49,7 @@ jobs:
|
|||
git commit -m "$COMMIT_MESSAGE"
|
||||
git tag "v$VERSION" -m "$TAG_MESSAGE"
|
||||
git push && git push --tags
|
||||
- name: Publish release
|
||||
- name: Publish
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
tag_name: "v${{ env.VERSION }}"
|
||||
|
|
|
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
### Added
|
||||
|
||||
- Support for Apple TV. [#337](https://github.com/passepartoutvpn/tunnelkit/issues/337)
|
||||
- Attach user data to VPN configuration. [#400](https://github.com/passepartoutvpn/tunnelkit/pull/400)
|
||||
|
||||
## 6.2.0 (2023-12-14)
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
{
|
||||
"object": {
|
||||
"pins": [
|
||||
"pins" : [
|
||||
{
|
||||
"package": "openssl-apple",
|
||||
"repositoryURL": "https://github.com/passepartoutvpn/openssl-apple",
|
||||
"state": {
|
||||
"branch": null,
|
||||
"revision": "026702febcaebcbf9ea68f2fa66b017eba998cdf",
|
||||
"version": "3.2.105"
|
||||
"identity" : "openssl-apple",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/passepartoutvpn/openssl-apple",
|
||||
"state" : {
|
||||
"revision" : "026702febcaebcbf9ea68f2fa66b017eba998cdf",
|
||||
"version" : "3.2.105"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "SwiftyBeaver",
|
||||
"repositoryURL": "https://github.com/SwiftyBeaver/SwiftyBeaver",
|
||||
"state": {
|
||||
"branch": null,
|
||||
"revision": "12b5acf96d98f91d50de447369bd18df74600f1a",
|
||||
"version": "1.9.6"
|
||||
"identity" : "swiftybeaver",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/SwiftyBeaver/SwiftyBeaver",
|
||||
"state" : {
|
||||
"revision" : "12b5acf96d98f91d50de447369bd18df74600f1a",
|
||||
"version" : "1.9.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "WireGuardKit",
|
||||
"repositoryURL": "https://github.com/passepartoutvpn/wireguard-apple",
|
||||
"state": {
|
||||
"branch": null,
|
||||
"revision": "73d9152fa0cb661db0348a1ac11dbbf998422a50",
|
||||
"version": "1.0.17"
|
||||
"identity" : "wireguard-apple",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/passepartoutvpn/wireguard-apple",
|
||||
"state" : {
|
||||
"branch" : "develop",
|
||||
"revision" : "b79f0f150356d8200a64922ecf041dd020140aa0"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"version": 1
|
||||
],
|
||||
"version" : 2
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// swift-tools-version:5.5
|
||||
// swift-tools-version:5.9
|
||||
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
||||
|
||||
import PackageDescription
|
||||
|
@ -6,7 +6,9 @@ import PackageDescription
|
|||
let package = Package(
|
||||
name: "TunnelKit",
|
||||
platforms: [
|
||||
.iOS(.v15), .macOS(.v12)
|
||||
.iOS(.v15),
|
||||
.macOS(.v12),
|
||||
.tvOS(.v17)
|
||||
],
|
||||
products: [
|
||||
// Products define the executables and libraries a package produces, and make them visible to other packages.
|
||||
|
@ -39,10 +41,11 @@ let package = Package(
|
|||
// Dependencies declare other packages that this package depends on.
|
||||
// .package(url: /* package url */, from: "1.0.0"),
|
||||
.package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver", from: "1.9.0"),
|
||||
.package(url: "https://github.com/passepartoutvpn/openssl-apple", from: "3.2.0"),
|
||||
// .package(name: "WireGuardKit", url: "https://git.zx2c4.com/wireguard-apple", .exact("1.0.15-26")),
|
||||
.package(name: "WireGuardKit", url: "https://github.com/passepartoutvpn/wireguard-apple", .exact("1.0.17"))
|
||||
// .package(name: "WireGuardKit", url: "https://github.com/passepartoutvpn/wireguard-apple", .revision("73d9152fa0cb661db0348a1ac11dbbf998422a50"))
|
||||
.package(url: "https://github.com/passepartoutvpn/openssl-apple", from: "3.2.105"),
|
||||
// .package(url: "https://git.zx2c4.com/wireguard-apple", .exact: Version("1.0.15-26")),
|
||||
// .package(url: "https://github.com/passepartoutvpn/wireguard-apple", exact: Version("1.0.17")),
|
||||
// .package(url: "https://github.com/passepartoutvpn/wireguard-apple", revision: "73d9152fa0cb661db0348a1ac11dbbf998422a50")
|
||||
.package(url: "https://github.com/passepartoutvpn/wireguard-apple", branch: "develop")
|
||||
// .package(name: "WireGuardKit", path: "../wireguard-apple")
|
||||
],
|
||||
targets: [
|
||||
|
@ -118,7 +121,7 @@ let package = Package(
|
|||
dependencies: [
|
||||
"__TunnelKitUtils",
|
||||
"TunnelKitCore",
|
||||
"WireGuardKit",
|
||||
.product(name: "WireGuardKit", package: "wireguard-apple"),
|
||||
"SwiftyBeaver"
|
||||
]),
|
||||
.target(
|
||||
|
|
|
@ -38,7 +38,7 @@ import Foundation
|
|||
#if os(iOS)
|
||||
import NetworkExtension
|
||||
import SystemConfiguration.CaptiveNetwork
|
||||
#else
|
||||
#elseif os(macOS)
|
||||
import CoreWLAN
|
||||
#endif
|
||||
import SwiftyBeaver
|
||||
|
@ -116,10 +116,12 @@ public class InterfaceObserver: NSObject {
|
|||
NEHotspotNetwork.fetchCurrent {
|
||||
completionHandler($0?.ssid)
|
||||
}
|
||||
#else
|
||||
#elseif os(macOS)
|
||||
let client = CWWiFiClient.shared()
|
||||
let ssid = client.interfaces()?.compactMap { $0.ssid() }.first
|
||||
completionHandler(ssid)
|
||||
#else
|
||||
completionHandler(nil)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,8 +38,10 @@ public struct NetworkExtensionExtra {
|
|||
/// Disconnects on sleep if `true`.
|
||||
public var disconnectsOnSleep = false
|
||||
|
||||
#if !os(tvOS)
|
||||
/// Enables best-effort kill switch.
|
||||
public var killSwitch = false
|
||||
#endif
|
||||
|
||||
/// Extra user configuration data.
|
||||
public var userData: [String: Any]?
|
||||
|
|
|
@ -38,7 +38,7 @@ import NetworkExtension
|
|||
import SwiftyBeaver
|
||||
#if os(iOS)
|
||||
import SystemConfiguration.CaptiveNetwork
|
||||
#else
|
||||
#elseif os(macOS)
|
||||
import CoreWLAN
|
||||
#endif
|
||||
import TunnelKitCore
|
||||
|
|
|
@ -113,7 +113,9 @@ extension OpenVPN.ProviderConfiguration: NetworkExtensionConfiguration {
|
|||
}
|
||||
protocolConfiguration.disconnectOnSleep = extra?.disconnectsOnSleep ?? false
|
||||
protocolConfiguration.providerConfiguration = try asDictionary()
|
||||
#if !os(tvOS)
|
||||
protocolConfiguration.includeAllNetworks = extra?.killSwitch ?? false
|
||||
#endif
|
||||
return protocolConfiguration
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,7 +86,9 @@ extension WireGuard.ProviderConfiguration: NetworkExtensionConfiguration {
|
|||
protocolConfiguration.passwordReference = extra?.passwordReference
|
||||
protocolConfiguration.disconnectOnSleep = extra?.disconnectsOnSleep ?? false
|
||||
protocolConfiguration.providerConfiguration = try asDictionary()
|
||||
#if !os(tvOS)
|
||||
protocolConfiguration.includeAllNetworks = extra?.killSwitch ?? false
|
||||
#endif
|
||||
return protocolConfiguration
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue