diff options
author | Andrej Mihajlov <and@mullvad.net> | 2020-11-03 17:22:37 +0100 |
---|---|---|
committer | Andrej Mihajlov <and@mullvad.net> | 2020-12-03 13:22:52 +0100 |
commit | ef7de2500fa6f97c30d3916ec1304a7c379e140b (patch) | |
tree | 0c286e9d262f4951f993dbf44183aa930ed605bb /README.md | |
parent | Packet tunnel: Implement packet tunnel provider using WireGuardAdapter (diff) | |
download | wireguard-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.md | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -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 |