Outline clients, developed by Jigsaw. The Outline clients use the popular Shadowsocks protocol, and lean on the Cordova and Electron frameworks to support Windows, Android / ChromeOS, Linux, iOS and macOS.
The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is designed for use with the Outline Server software, but it is fully compatible with any Shadowsocks server.
All builds require yarn, in addition to other per-platform requirements. After cloning this repo install all dependencies with the command.
Outline clients share the same web app across all platforms. This code is located in the src/www directory. If you are making changes to the shared web app and do not need to test platform-specific functionality, you can test in a desktop browser by running:
yarn gulp build --platform=browser yarn cordova run browser
The latter command will open a browser instance running the app. Browser platform development will use fake servers to test successful and unsuccessful connections.
Tip: Build with
(export BUILD_ENV=development; yarn gulp build --platform=browser)to enable source maps.
Additional requirements for Android:
To build for android, run:
yarn gulp build --platform=android
To rebuild after modifying platform dependent files, run:
yarn cordova platform rm android && yarn gulp build --platform=android
If this gives you unexpected Cordova errors, run:
yarn run clean && yarn && yarn gulp build --platform=android
Cordova will generate a new Android project in the platforms/android directory. Install the built apk by platforms/android/build/outputs/apk/android-armv7-debug.apk
To learn more about developing for Android, see docs/android-development.
A Docker image with all pre-requisites for Android builds is included. To build:
./tools/build/build.sh yarn gulp build --platform=android
Additional requirements for Apple:
To build for macOS (OS X), run:
yarn run clean && yarn && yarn gulp build --platform=osx
To build for iOS, run:
yarn run clean && yarn && yarn gulp build --platform=ios
To learn more about developing for Apple, see docs/apple-development
Unlike the Android and Apple clients, the Windows and Linux clients use the Electron framework, rather than Cordova.
Additional requirements for building on Windows:
rsyncin the Cygwin installer.
To build the Electron clients, run:
yarn do src/electron/build
To run the Electron clients, run:
yarn do src/electron/run
To package the Electron clients into an installer executable, run:
yarn do src/electron/package_[linux|windows]
To enable error reporting through Sentry for local builds, run:
bash export SENTRY_DSN=[Sentry development API key] [platform-specific build command]
Release builds on CI are configured with a production Sentry API key.