Skip to content

pia-foss/mobile-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,868 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PIA logo

Private Internet Access

Private Internet Access is the world's leading consumer VPN service. At Private Internet Access we believe in unfettered access for all, and as a firm supporter of the open source ecosystem we have made the decision to open source our VPN clients. For more information about the PIA service, please visit our website privateinternetaccess.com or check out the Wiki.

PIA VPN for iOS & tvOS

With the Private Internet Access VPN app for iOS and tvOS, you can access our network of VPN servers across the world from your iPhone, iPad, iPod touch, or Apple TV. Choose among many available countries and connect easily. Features include kill switch, multiple VPN protocols, DNS/IPv6 leak protection and ad-blocking.

Features

  • Plenty of countries to connect to
  • IKEv2, OpenVPN and WireGuard VPN protocols (iOS) / IKEv2 (tvOS)
  • Kill switch
  • Fine-grained VPN settings
  • DNS leak protection
  • IPv6 leak protection
  • Safari Content Blocker (iOS only)
  • Dark theme
  • Hotspot Helper (iOS only)
  • tvOS support

Requirements

  • iOS 15.0+ / tvOS 17.0+
  • Xcode 26+
  • Homebrew
  • SwiftGen (brew install swiftgen)
  • Go (brew install go, required for WireGuard)
  • Ruby with rbenv (recommended)
  • Bundler (gem install bundler && bundle install)

Installation

# Install system dependencies
brew install swiftgen go

# Install Ruby dependencies
gem install bundler && bundle install

Build Configurations & Schemes

The project uses three build configurations, each with iOS and tvOS variants:

Scheme Endpoints Use for
PIA VPN Development Production Local development
PIA VPN Staging Staging Staging environment testing
PIA VPN Release Production Release builds
PIA VPN-tvOS Development Production tvOS local development
PIA VPN-tvOS Staging Staging tvOS staging environment testing
PIA VPN-tvOS Release Production tvOS release builds

Testing

# Unit tests
bundle exec fastlane iOStests
bundle exec fastlane tvOStests

Hotspot Helper API

We use a special entitlement to participate in the process of joining Wi-Fi/hotspot networks (https://developer.apple.com/documentation/networkextension/nehotspothelper).

You need to request this entitlement from Apple, or remove the call to configureHotspotHelper() in AppDelegate.swift and adapt the entitlements file to your needs.

swift-format

To maintain consistency across developers, we use swift-format. The default formatting rules are defined in the .swift-format file. A pre-commit hook is available that automatically formats staged Swift files and blocks the commit if any changes are needed. To install it, run from the repo root:

ln -s ../../Tools/hooks/pre-commit .git/hooks/pre-commit

Contributing

By contributing to this project you are agreeing to the terms stated in the Contributor License Agreement (CLA) here.

For more details please see CONTRIBUTING.

Issues and Pull Requests should use these templates: ISSUE and PULL REQUEST.

License

This project is licensed under the MIT (Expat) license, which can be found here.

About

Private Internet Access - PIA VPN for iOS

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages