sunocean / VPNOn

Turn On your VPN like a hero.

Home Page:https://twitter.com/lexrus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VPN On

AppStore

Screencast

Turning on a VPN is always a painful experience on an iOS device due to the deep nested menus. This App installs a Today Widget into Notification Center which make it possible to turn on a VPN in about 3 seconds(depends on the connection speed).

Requirements

Build with Xcode

To compile the project, you may temporarily modify the bundle_id after adding yours into the Apple Developer Center. And then activate the following capabilities of both the container App and the widget:

  1. Personal VPN
  2. Keychain Sharing
  3. App Groups

Meanwhile, provisioning profiles are required for testing on iPhone.

Usage

After creating a VPN configuration you can activate the Today Widget in Notification Center, then turn on the VPN by tapping the switch. You may be asked to allow the installation of a VPN profile for the first time.

Contribution

TODOs and issues are listed here.

This project follows the gitflow workflow. You'd better create a branch called feature/sth_improved before any major improvements. Meanwhile minor bug fixes are welcomed in the develop branch.

URL Scheme

VPN service providers may list a link for their customers to efficiently add server configurations in VPN On. By register the vpnon:// protocol, it supports the following URL scheme:

vpnon://{account}:{password}@{server}/?title={title}&group={group}&secret={secret}&alwayson=[yes|no]

Fields are optional except the server field. The following URLs are valid:

  • vpnon://jony:ive@apple.com/?title=Apple&group=Design&secret=iPhone

  • vpnon://apple.com/

  • vpnon://admin@192.168.0.123/?group=devops

  • vpnon://admin@192.168.0.123/?alwayson=no

Donation

Although this App is 100% open-sourced, it may takes about 20~60 minutes to configure the environment. I'd appreciate if you could buy VPN On from App Store.

BTW. I'm a coffee addict, buy me a coffee via PayPal or Alipay: lexrus@gmail.com

Credits

KeychainWrapper

Note: I set the optimization level of VPNOnKit to None in order to read Keychain properly due to an issue of Swift.

Contact

Lex Tang (@lexrus on Twitter)

License

This code is distributed under the terms and conditions of the MIT license.

About

Turn On your VPN like a hero.

https://twitter.com/lexrus

License:MIT License


Languages

Language:Swift 69.8%Language:Objective-C 30.1%Language:C++ 0.1%