aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md54
1 files changed, 50 insertions, 4 deletions
diff --git a/README.md b/README.md
index 93598c0..2efc5d4 100644
--- a/README.md
+++ b/README.md
@@ -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