diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 54 |
1 files changed, 50 insertions, 4 deletions
@@ -14,11 +14,11 @@ $ cd wireguard-apple - Rename and populate developer team ID file: ``` -$ cp WireGuard/WireGuard/Config/Developer.xcconfig.template WireGuard/WireGuard/Config/Developer.xcconfig -$ vim WireGuard/WireGuard/Config/Developer.xcconfig +$ cp Sources/WireGuardApp/Config/Developer.xcconfig.template Sources/WireGuardApp/Config/Developer.xcconfig +$ vim Sources/WireGuardApp/Config/Developer.xcconfig ``` -- Install swiftlint and go 1.13.4: +- Install swiftlint and go 1.19: ``` $ brew install swiftlint go @@ -27,11 +27,57 @@ $ brew install swiftlint go - Open project in Xcode: ``` -$ open ./WireGuard/WireGuard.xcodeproj +$ open WireGuard.xcodeproj ``` - Flip switches, press buttons, and make whirling noises until Xcode builds it. +## WireGuardKit integration + +1. Open your Xcode project and add the Swift package with the following URL: + + ``` + https://git.zx2c4.com/wireguard-apple + ``` + +2. `WireGuardKit` links against `wireguard-go-bridge` library, but it cannot build it automatically + due to Swift package manager limitations. So it needs a little help from a developer. + Please follow the instructions below to create a build target(s) for `wireguard-go-bridge`. + + - In Xcode, click File -> New -> Target. Switch to "Other" tab and choose "External Build + System". + - Type in `WireGuardGoBridge<PLATFORM>` under the "Product name", replacing the `<PLATFORM>` + placeholder with the name of the platform. For example, when targeting macOS use `macOS`, or + when targeting iOS use `iOS`. + Make sure the build tool is set to: `/usr/bin/make` (default). + - In the appeared "Info" tab of a newly created target, type in the "Directory" path under + the "External Build Tool Configuration": + + ``` + ${BUILD_DIR%Build/*}SourcePackages/checkouts/wireguard-apple/Sources/WireGuardKitGo + ``` + + - Switch to "Build Settings" and find `SDKROOT`. + Type in `macosx` if you target macOS, or type in `iphoneos` if you target iOS. + +3. Go to Xcode project settings and locate your network extension target and switch to + "Build Phases" tab. + + - Locate "Dependencies" section and hit "+" to add `WireGuardGoBridge<PLATFORM>` replacing + the `<PLATFORM>` placeholder with the name of platform matching the network extension + deployment target (i.e macOS or iOS). + + - Locate the "Link with binary libraries" section and hit "+" to add `WireGuardKit`. + +4. In Xcode project settings, locate your main bundle app and switch to "Build Phases" tab. + Locate the "Link with binary libraries" section and hit "+" to add `WireGuardKit`. + +5. iOS only: Locate Bitcode settings under your application target, Build settings -> Enable Bitcode, + change the corresponding value to "No". + +Note that if you ship your app for both iOS and macOS, make sure to repeat the steps 2-4 twice, +once per platform. + ## MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of |