VPN client for Apple platforms.
Go to file
Davide De Rosa 7d47150c15 Script deployment to both platforms 2021-01-06 18:01:28 +01:00
.github Update donation URL 2020-05-24 00:09:28 +02:00
Passepartout Set beta release (iOS) 2021-01-05 00:27:07 +01:00
Passepartout.xcodeproj Fix Xcode version in CI 2021-01-06 17:36:00 +01:00
Passepartout.xcworkspace Initial commit 2018-10-11 09:13:19 +02:00
Submodules Fix Xcode version in CI 2021-01-06 17:36:00 +01:00
fastlane Set up to upload Mac build to App Store 2021-01-06 18:01:28 +01:00
res Merge READMEs 2021-01-03 22:28:08 +01:00
scripts Script deployment to both platforms 2021-01-06 18:01:28 +01:00
.env Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
.env.beta Set up to upload Mac build to App Store 2021-01-06 18:01:28 +01:00
.env.beta.ios Set up to upload Mac build to App Store 2021-01-06 18:01:28 +01:00
.env.beta.mac Set up to upload Mac build to App Store 2021-01-06 18:01:28 +01:00
.env.dev Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
.env.dev.ios Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
.env.dev.mac Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
.env.ios Set up to upload Mac build to App Store 2021-01-06 18:01:28 +01:00
.env.mac Set up to upload Mac build to App Store 2021-01-06 18:01:28 +01:00
.env.template.secret-codesign Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
.env.template.secret-deploy Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
.gitignore Merge macOS app and Core into repository 2021-01-03 22:28:07 +01:00
.gitmodules Merge macOS app and Core into repository 2021-01-03 22:28:07 +01:00
.travis.yml Fix Xcode version in CI 2021-01-06 17:36:00 +01:00
CLA.rst Initial commit 2018-10-11 09:13:19 +02:00
CONTRIBUTING.md Initial commit 2018-10-11 09:13:19 +02:00
Config.xcconfig Revert to static version number 2021-01-03 22:28:08 +01:00
Gemfile Update bundle 2020-06-11 14:58:46 +02:00
Gemfile.lock Refactor fastlane configuration/environment 2021-01-03 22:28:08 +01:00
LICENSE Initial commit 2018-10-11 09:13:19 +02:00
Podfile Update TunnelKit 2021-01-03 22:28:11 +01:00
Podfile.include Upgrade to TunnelKit 2.0 2019-05-25 18:29:10 +02:00
Podfile.lock Update TunnelKit 2021-01-03 22:28:11 +01:00
README.md Merge READMEs 2021-01-03 22:28:08 +01:00
ci Reuse fastlane templates from submodule 2019-10-11 18:44:53 +02:00

README.md

Passepartout

iOS 12+ macOS 10.15+ TunnelKit 3.1 License GPLv3 Join Reddit Tweet

Passepartout is a non-official, user-friendly OpenVPN® client for iOS and macOS.

Overview

All profiles in one place

Passepartout lets you handle multiple profiles in one single place and quickly switch between them.

Ease of use

With its native look & feel, Passepartout focuses on ease of use. It does so by stripping the .ovpn flags that are today obsolete or rarely used. With good approximation, it mimics the most relevant features you will find in OpenVPN 2.4.x.

Trusted networks

Trust Wi-Fi, cellular (iOS) or wired (macOS) networks to fine-grain your connectivity. You can then choose to retain a VPN connection when entering a trusted network, or prevent it completely.

Siri shortcuts (iOS)

Enjoy the convenience of Siri shortcuts to automate frequent VPN actions.

Override network settings

Override default gateway, DNS, proxy and MTU settings right from the app. Don't bother editing the .ovpn file or your pushed server settings. This is especially useful if you want to override your provider settings, e.g. to integrate your own DNS-based ad blocking.

See your connection parameters

Passepartout strives for transparency, by showing a fairly detailed yet understandable resume of your connection parameters.

Disconnect on sleep

Keeping the VPN active in the background provides smoother operation, but may be tough for the battery. You might want to use this feature if you're concerned about battery life. When the device goes to sleep, the VPN will disconnect to then reconnect on device wake-up.

No unrequested activity

Passepartout is a VPN client and does absolutely nothing else without your consent. The providers infrastructures are obtained via a static GitHub API if and only if you manually refresh them.

Presets for major providers

Passepartout can connect to a few well-known VPN providers with an existing account:

In preset mode, you can pick pre-resolved IPv4 endpoints when DNS is problematic.

Import .ovpn profiles

Passepartout can import .ovpn configuration files. This way you can fine-tune encryption without tweaking and reimporting a new configuration.

You can find details on what may or may not work in the related section of the TunnelKit README.

Installation

Requirements

  • iOS 12.0+ / macOS 10.15+
  • Xcode 11+ (Swift 5)
  • Git (preinstalled with Xcode Command Line Tools)
  • Ruby (preinstalled with macOS)
  • CocoaPods 1.8.0

It's highly recommended to use the Git and Ruby packages provided by Homebrew.

Testing

Download the app codebase locally:

$ git clone https://github.com/passepartoutvpn/passepartout-apple.git

Enter the directory and clone the submodules:

$ git submodule init
$ git submodule update

Assuming you have a working CocoaPods environment, setting up the app workspace only requires installing the pod dependencies:

$ pod install

For the VPN to work properly, the app requires:

  • App Groups and Keychain Sharing capabilities
  • App IDs with Packet Tunnel entitlements

both in the main app and the tunnel extension target.

Make sure to update Config.xcconfig according to your developer account and your identifiers:

CFG_TEAM_ID = A1B2C3D4E5
CFG_APP_IOS_ID = com.example.ios.MyApp
CFG_APP_MACOS_ID = com.example.macos.MyApp
CFG_GROUP_ID = com.example.MyAppGroup // omit the "group." prefix
CFG_APPSTORE_IOS_ID = 1234567890 // optional for development, can be bogus
CFG_APPSTORE_MACOS_ID = 1234567890 // optional for development, can be bogus

After that, open Passepartout.xcworkspace in Xcode and run the Passepartout-iOS or Passepartout-macOS target.

License

Copyright (c) 2021 Davide De Rosa. All rights reserved.

This project is licensed under the GPLv3.

Contributing

By contributing to this project you are agreeing to the terms stated in the Contributor License Agreement (CLA). For more details please see CONTRIBUTING.

Credits

The logo is taken from the awesome Circle Icons set by Nick Roach.

The country flags are taken from: https://github.com/lipis/flag-icon-css/

  • Kvitto - Copyright (c) 2015 Oliver Drobnik
  • lzo - Copyright (c) 1996-2017 Markus F.X.J. Oberhumer
  • MBProgressHUD - Copyright (c) 2009-2016 Matej Bukovinski
  • PIATunnel - Copyright (c) 2018-Present Private Internet Access
  • SSZipArchive - Copyright (c) 2010-2012 Sam Soffes
  • SwiftGen - Copyright (c) 2018 SwiftGen
  • SwiftyBeaver - Copyright (c) 2015 Sebastian Kreutzberger

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (https://www.openssl.org/)

Copyright (c) 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc.

Translations

  • Chinese (Simplified): OnlyThen - @OnlyThen
  • Dutch: Norbert de Vreede - @paxpacis
  • English: Davide De Rosa (author)
  • French: Julien Laniel - @linkjul
  • German: Christian Lederer, Theodor Tietze
  • Greek: Konstantinos Koukoulakis
  • Italian: Davide De Rosa (author)
  • Polish: Piotr Książek
  • Portuguese: Helder Santana - @heldr
  • Russian: Alexander Korobynikov
  • Spanish: Davide De Rosa (author), Elena Vivó
  • Swedish: Henry Gross-Hellsen - @cowpod

Usage

You are strongly encouraged to read carefully both the disclaimer and privacy policy before using this software.

Contacts

Twitter: @keeshux

Website: passepartoutvpn.app (FAQ)