aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2020-11-03 17:22:37 +0100
committerAndrej Mihajlov <and@mullvad.net>2020-12-03 13:22:52 +0100
commitef7de2500fa6f97c30d3916ec1304a7c379e140b (patch)
tree0c286e9d262f4951f993dbf44183aa930ed605bb /README.md
parentPacket tunnel: Implement packet tunnel provider using WireGuardAdapter (diff)
downloadwireguard-apple-ef7de2500fa6f97c30d3916ec1304a7c379e140b.tar.xz
wireguard-apple-ef7de2500fa6f97c30d3916ec1304a7c379e140b.zip
Update README
Signed-off-by: Andrej Mihajlov <and@mullvad.net>
Diffstat (limited to 'README.md')
-rw-r--r--README.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/README.md b/README.md
index 93598c0..15557c1 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,54 @@ $ open ./WireGuard/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
+ ```
+
+ Choose `am/swiftpm` branch in the "Rules" section.
+
+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/../../SourcePackages/checkouts/wireguard-apple/wireguard-go-bridge
+ ```
+
+ - 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