VPN client for Apple platforms.
Go to file
Davide ffb8829f4f
Reorganize Core Data containers (#1017)
Before anything, remove any code related to App Group containers from
tvOS target because they are not available. Include the beta receipt
override, it's broken for that reason.

In short:

- Store all Core Data containers locally. Do not use the App Group for
Core Data for consistency across platforms.
- Store logs in the App Group on iOS/macOS, but locally on tvOS (see
`urlForCaches`).

Then, rather than one container per model, merge models into:

- Local: Providers
- Remote: Profiles + Preferences (now in the same CloudKit container)

Reuse the remote model for backups too.

This change is safe because:

- Local profiles are stored via Network Extension in the keychain, not
Core Data
- Remote profiles are re-imported via CloudKit sync
- Providers are re-downloaded on first use
- Preferences are lost, but they are "cheap" data
- Profile backups are lost, but they were hidden anyway
2024-12-15 20:20:33 +01:00
.github Add template for import tests 2024-12-02 09:25:19 +01:00
Library Reorganize Core Data containers (#1017) 2024-12-15 20:20:33 +01:00
Passepartout Reorganize Core Data containers (#1017) 2024-12-15 20:20:33 +01:00
Passepartout.xcodeproj Reorganize Core Data containers (#1017) 2024-12-15 20:20:33 +01:00
ci Get optional device/platform from scripts 2024-12-12 16:56:16 +01:00
fastlane Bump version 2024-12-15 14:06:34 +01:00
screenshots Autogenerate framed screenshots from HTML/CSS (#1000) 2024-12-11 20:33:58 +01:00
.gitignore Autogenerate framed screenshots from HTML/CSS (#1000) 2024-12-11 20:33:58 +01:00
.ruby-version Bump Ruby version to 3.2 2024-09-22 15:48:10 +02:00
.swiftlint.yml Update SwiftLint/SwiftGen YAML 2024-11-28 19:54:50 +01:00
CHANGELOG.txt Bump version 2024-12-15 13:52:05 +01:00
CLA.rst Initial commit 2018-10-11 09:13:19 +02:00
CONTRIBUTING.md Update README (#1008) 2024-12-14 09:44:10 +01:00
Gemfile Update bundle 2024-12-12 23:56:40 +01:00
Gemfile.lock Update bundle 2024-12-12 23:56:40 +01:00
LICENSE Initial commit 2018-10-11 09:13:19 +02:00
README.md Fix README 2024-12-15 19:47:09 +01:00
swiftgen.yml Update SwiftLint/SwiftGen YAML 2024-11-28 19:54:50 +01:00

README.md

Passepartout logo

Passepartout

Unit Tests Release Join Reddit Join TestFlight

Passepartout is your go-to app for VPN and privacy.

Passepartout runs on iPhone, iPad, Mac, and Apple TV.

Features

OpenVPN® and WireGuard® client for Apple platforms, the OpenVPN stack also implements the Tunnelblick XOR patch.

Other features:

  • On-demand rules
  • Override DNS and HTTP proxy
  • Custom routing
  • Presets for multiple providers (virtually any)

Tailored for Apple platforms:

  • Apple TV
  • iCloud
  • Shortcuts
  • No background activities
  • Wise on battery

Installation

Requirements

  • iOS 16+ / macOS 13+ / tvOS 17+
  • Xcode 15+ (SwiftPM 5.5)
  • Git (preinstalled with Xcode Command Line Tools)
  • Ruby (preinstalled with macOS)

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

Testing

Download the app codebase locally:

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

For everything to work properly, you must comply with all the capabilities and entitlements in the main app and the tunnel extension target. Therefore, you must update the Config.xcconfig file according to your developer account.

To eventually test the app, open Passepartout.xcodeproj in Xcode and run the Passepartout target.

WARNING: SwiftPM package resolution will fail because PassepartoutKit is a private repository, as it's not ready for public use yet. Follow updates here.

License

Copyright (c) 2024 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.

OpenVPN

© Copyright 2024 OpenVPN | OpenVPN is a registered trademark of OpenVPN, Inc.

WireGuard

© Copyright 2015-2024 Jason A. Donenfeld. All Rights Reserved. "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

OpenSSL

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

Community

A huge credit goes to:

  • My tiny group of 3 private beta testers
  • The 9000+ public testers using the beta on a daily basis
  • The continued support and feedback from the Passepartout community on Reddit
  • The overall patience of users affected by my bugs that actively collaborate in resolving them
  • All those who contributed to the amazingly high rating on the App Store

Translations

The app is mostly translated with ChatGPT, but these are the acknowledgments to the original translators:

  • 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
  • Ukranian: Dmitry Chirkin - @josser

Usage

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

Contacts

Twitter: @keeshux

Website: passepartoutvpn.app (FAQ)