• Stars
    star
    290
  • Rank 142,981 (Top 3 %)
  • Language
    Swift
  • License
    MIT License
  • Created over 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Private Internet Access - PIA VPN for iOS

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

With the Private Internet Access VPN app for iOS, you can access our network of VPN servers across the world from your iPhone, iPad or iPod touch (64-bit only). Choose among many available countries and connect to them easily. Features include kill switch, multiple VPN protocols, DNS/IPv6 leak protection and Safari Content Blocker for ad-blocking while browsing with Safari.

Getting started

The PIA VPN app features:

  • Plenty of countries to connect to (28 as of today)
  • IKEv2, OpenVPN and WireGuard VPN Protocols
  • Kill switch
  • Multiple VPN protocols
  • Fine-grained VPN settings
  • DNS leak protection
  • IPv6 leak protection
  • Safari Content Blocker
  • Dark theme
  • Hotspot Helper

Installation

Requirements

  • iOS 11.0+ / macOS 10.11+
  • Xcode 9+ (Swift 4)
  • Git (preinstalled with Xcode Command Line Tools)
  • Ruby (preinstalled with macOS)
  • CocoaPods 1.5.0
  • SwiftGen
  • Go

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/pia-foss/vpn-ios.git

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

$ pod install

After that, open PIA VPN.xcworkspace in Xcode and run the PIA VPN target.

If the build does not complete due to missing modules (often PIAAccount), run pod install again with the partial build, then build again.

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.

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 to Apple or remove the call to configureHotspotHelper() in AppDelegate.swift and adapt the entitlements file to your needs.

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.

Authors

  • Jose Blaya - ueshiba
  • Davide De Rosa
  • Amir Malik (before 2016)

License

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

Acknowledgements

© 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc.

More Repositories

1

manual-connections

Scripts for manual connections to Private Internet Access
Shell
619
star
2

extension-chrome

Private Internet Access - Chrome Extension
JavaScript
282
star
3

desktop

Private Internet Access - Desktop VPN Client for Windows/macOS/Linux
C++
279
star
4

tunnel-apple

Private Internet Access - Tunnel for Apple platforms
Swift
106
star
5

mobile-ios-wireguard

Private Internet Access - WireGuard library for iOS
C
51
star
6

mobile-ios-library

Private Internet Access - Client library for Apple platforms
Swift
40
star
7

mobile-android-legacy

Private Internet Access - Android VPN Client
Java
38
star
8

extension-firefox

JavaScript
23
star
9

desktop-windows-wfp-callout

C
13
star
10

mac-split-tunnel

PIA's macOS split tunnel library.
Swift
13
star
11

desktop-tap

Private Internet Access - Windows TAP adapter for Desktop VPN Client
C
12
star
12

mobile-android-openvpn

Private Internet Access - OpenVPN for Android VPN Client
C
11
star
13

mobile-android

Private Internet Access - Android VPN Client
Kotlin
11
star
14

mobile-android-openvpn-tunnel

Private Internet Access - Tunnel for Android
C
10
star
15

desktop-mac-network-kext

Deprecated - PIA 2.7.0 no longer uses a kext for macOS split tunnel
C
10
star
16

desktop-shadowsocks

Deprecated - replaced by https://github.com/pia-foss/desktop-dep-build/
Shell
9
star
17

desktop-wireguard

Deprecated - replaced by https://github.com/pia-foss/desktop-dep-build/
Batchfile
9
star
18

desktop-openvpn

Deprecated - replaced by https://github.com/pia-foss/desktop-dep-build/
Shell
8
star
19

desktop-hnsd

Deprecated - replaced by https://github.com/pia-foss/desktop-dep-build/
Shell
8
star
20

desktop-dep-build

Build external dependencies for PIA Desktop
Shell
6
star
21

mobile-ios-openvpn-openssl

C
4
star
22

mobile-shared-csi

Kotlin
3
star
23

mobile-android-vpn-manager

Android Vpn Manager. Handles the vpn connections to all the supported protocols.
Kotlin
3
star
24

mobile-ios-networking

Swift
2
star
25

mobile-android-obfuscation-proxy

Rust
2
star
26

mobile-shared-account

Kotlin
2
star
27

mobile-ios-releases-regions

Objective-C
2
star
28

mobile-ios-releases-account

Objective-C
2
star
29

mobile-shared-kpi

Kotlin
1
star
30

mobile-ios-releases-csi

Objective-C
1
star
31

mobile-shared-regions

Kotlin
1
star
32

mobile-ios-releases-kpi

Objective-C
1
star