Skip to content

Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls.

License

Notifications You must be signed in to change notification settings

netbirdio/ios-client

Repository files navigation


Start using NetBird at netbird.io
See Documentation
Join our Slack channel


NetBird iOS Client

The NetBird iOS client allows connections from mobile devices running iOS 14.0+ to private resources in the NetBird network.

Install

You can download and install the app from the App Store:

Download on the App Store

Screenshots

mainscreen peer-overview menu

Code structure

The code is divided into 4 parts:

  • The main netbird Go code from the NetBird repo which is compiled into an xcframework. This contains most of the client logic.
  • The network extension /NetbirdNetworkExtension that is running in the background where the compiled Go code is executed.
  • The UI and app code under /NetBird
  • The /NetbirdKit/NetworkExtensionAdapter that controls the extension and builds the link between UI and extension

Requirements

  • iOS 14.0+
  • Xcode 12.0+
  • gomobile

Run locally

To build the app, this repository and the main netbird repository are needed.

git clone https://github.com/netbirdio/netbird.git
git clone https://github.com/netbirdio/ios-client.git

Building the xcframework from the main netbird repo. This needs to be stored in the root directory of the app

cd netbird
gomobile bind -target=ios -bundleid=io.netbird.framework -o ../ios-client/NetBirdSDK.xcframework ./client/ios/NetBirdSDK

Open the Xcode project, and we are ready to go.

Note: The app can not be run in the iOS simulator. To test the app, a physical device needs to be connected to Xcode via cable and set as the run destination.

Other project repositories

NetBird project is composed of multiple repositories: