VPN On
GitHub address
https://github.com/lexrus/VPNOn
Because of deeply nested menus, turning on VPN has always been a painful experience on iOS devices. This app installs a Today Widget in Notification Center, allowing you to turn on VPN in about 3 seconds, depending on connection speed. In addition, by enabling the on-demand feature, VPN can connect automatically when you visit any domain specified in this app.
Requirements
- iPhone / iPad running iOS 10.3+
- IPSec IKEv1 / IKEv2 VPN (created withmy Ansible Playbook or deployed on DigitalOcean)
- Xcode 9.3+
- Apple iOS Developer account
- Carthage
Build with Xcode
To compile the project, you can temporarily modify thebundle_idafter adding it to the Apple Developer Center. Then enable the following capabilities for the container app and Today extension:
- Personal VPN
- Keychain Sharing
- App Groups
Also, a provisioning profile is required for testing on iPhone / iPad.
Usage
Once the VPN configuration has been added, you can enable the Today Widget in Notification Center, then turn on the VPN by tapping the switch or the flag. You may be asked to allow the VPN profile to be installed the first time.
This project follows thegitflowworkflow. You are encouraged to create afeature/sth_improvedbranch before making any major improvements. Small bug fixes are also welcome in the development branch.
URL Schemes
Add Configuration
VPN service providers may list links for their customers to efficiently add server configurations in VPN On. By registering thevpnon://protocol, it supports the following URL scheme:
vpnon://{account}:{password}@{server}/?title={title}&group={group}&secret={secret}&alwayson=[yes|no]&ikev2=[yes|no]
serverandtitleare required; the other fields are optional. The following URLs are valid:
-
vpnon://jony:[email protected]/?title=Apple&group=Design&secret=iPhone vpnon://apple.com/?title=Apple-
vpnon://[email protected]/?title=Google&group=devops -
vpnon://[email protected]/?title=Yahoo&alwayson=no -
vpnon://jony:[email protected]/?title=Twitter&ikev2=yes -
vpnon://jony:[email protected]/?title=Twitter&ikev2=yes&remoteid=jetblack
Establish Connection
vpnon://VPNTitle/?connect-
vpnon://VPNTitle/?connect&callback=https://twitter.com
Disconnect
vpnon://disconnect/
