Network Extension Setup

Overview

A network extension is a separate process that runs alongside your main application and handles the VPN connection. This step involves creating a new target in your Xcode project, configuring its build settings, and implementing the necessary code to establish and manage the VPN connection.

Prerequisites

You should already have prepared application target in order to continue. If you haven't done it yet, please see Application Setup.

Choose Your Setup Guide

Select the setup guide based on your target platform and extension type:

Platform
Extension Type
Guide

iOS / macOS

Application Extension

tvOS

Application Extension

macOS

System Extension

Which Extension Type Should I Use?

Application Extension

Use Application Extensions when:

  • Distributing through the Mac App Store

  • Building for iOS or tvOS

  • Building sandboxed applications

  • Supporting older macOS versions (before 10.15)

System Extension

Use System Extensions when:

  • Distributing outside the Mac App Store (Developer ID)

  • Building enterprise or developer tools

  • Requiring maximum performance and stability

  • Targeting macOS 10.15 (Catalina) and later

System Extensions are only available on macOS. iOS and tvOS applications must use Application Extensions.

Quick Comparison

Aspect
Application Extension
System Extension

Platforms

iOS, macOS, tvOS

macOS only

Distribution

App Store or Developer ID

Developer ID only

Sandbox

Required

Not required

Activation

Automatic

Manual (requires user approval)

macOS Version

All supported versions

10.15+

Last updated

Was this helpful?