7
5
Fork
You've already forked apple
1
eduVPN app for iOS and macOS
  • Swift 49.7%
  • Go 35.5%
  • Python 4.9%
  • C++ 3.5%
  • Shell 3.1%
  • Other 3.3%
Find a file
2026年07月07日 14:37:58 +05:30
.bundle Use official tunnelkit instead of fork 2020年04月17日 14:29:32 +02:00
.github/workflows Github Workflow: Update Go version 2023年05月22日 16:07:41 +05:30
Artwork Assets fix 2020年01月15日 22:29:41 +01:00
docs Add docs on checking for updates 2026年07月07日 14:33:01 +05:30
EduVPN Version bump (v4.1.6) 2026年07月07日 14:37:58 +05:30
EduVPN-old/Config Move in resources from old codebase 2025年04月14日 07:03:17 +05:30
LoginItemHelper-macOS Update Copyright 2021年06月26日 00:31:55 +05:30
Scripts create_developer_id_installer.sh: Fix detecting app version 2026年07月01日 14:59:46 +05:30
.gitignore Use official tunnelkit instead of fork 2020年04月17日 14:29:32 +02:00
.gitlab-ci.yml added alex to ci mailing list 2019年06月14日 01:26:46 +07:00
.swiftlint.yml SwiftLint: Exclude running swiftlint on local packages 2022年05月18日 01:16:04 +05:30
BRANDING.md Doc: Update branding documentation 2021年02月22日 12:39:35 +05:30
build.sh MacOS configs 2019年10月25日 14:25:43 +02:00
CHANGES.md Version bump (v4.1.6) 2026年07月07日 14:37:58 +05:30
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2018年02月15日 21:54:42 +01:00
ExportOptions.plist methon in exportOptions fix 2019年06月14日 00:41:03 +07:00
I18N.md Add i18n instructions 2023年08月07日 13:36:44 +05:30
LICENSE Switch license from MIT to GPLv3 (with binary form exception). 2020年06月30日 22:20:57 +02:00
MAKING_A_RELEASE.md Update MAKING_A_RELEASE.md 2026年07月01日 12:49:50 +05:30
PREPARING_FOR_A_DEVELOPER_ID_RELEASE.md Add PREPARING_FOR_A_DEVELOPER_ID_RELEASE.md 2026年03月13日 14:20:32 +05:30
README.md Update go version to 1.26 2026年04月19日 15:23:27 +05:30
SECURITY.md Base security policy on the one mentioned on surfnet.org website. 2020年05月11日 13:21:22 +02:00

eduVPN iOS and macOS apps

These apps depend on TunnelKit and WireGuardKit.

The app contains a Network Tunneling Protocol Client and allows its users to create a VPN tunnel if you are able to connect to an eduVPN or Let's Connect enabled server.

License

Copyright (c) 2020-2024 The Commons Conservancy. All rights reserved.

Part I

This project is licensed under the [GPLv3][license-content].

Part II

As seen in [libsignal-protocol-c][license-signal]:

Additional Permissions For Submission to Apple App Store: Provided that you are otherwise in compliance with the GPLv3 for each covered work you convey (including without limitation making the Corresponding Source available in compliance with Section 6 of the GPLv3), the Author also grants you the additional permission to convey through the Apple App Store non-source executable versions of the Program as incorporated into each applicable covered work as Executable Versions only under the Mozilla Public License version 2.0 (https://www.mozilla.org/en-US/MPL/2.0/).

Beware

Due to the usage of Network Extensions, you can not fully test this app on a Simulator.

The infrastructure for Network Extension (NE) providers is simply not present on the simulator because, conceptually, it lives ‘below’ the kernel, and the simulator is layered on the OS X kernel.

More info here.

Building

There are two flavours of apps that are built from the same codebase:

Use the appropriate scheme in Xcode to build the correct app.

Only Let's Connect macOS app is implemented at present.

Pre-requisites

  1. Go version 1.26 is required. You can install it using homebrew.

  2. An explicit App ID needs to be created at the Apple Developer website for each platform

    To do this, you can:

    1. Go to your Apple Developer account page
    2. Go to Certificates, IDs and Profiles > Identifiers
    3. Create an App ID with an Explicit Bundle ID, with the following Capabilities:
      • App Groups
      • Network Extensions
    4. Specify the Bundle ID in the appropriate <app>-<os>.xcconfig file under 'EduVPN/xcconfig/'. See the -.xcconfig.template file for help.

Building the app

  • Open 'EduVPN/EduVPN.xcodeproj/' in Xcode and build the appropriate scheme. The schemes that can be built are:
    • LetsConnect-macOS
    • LetsConnect-iOS
    • EduVPN-iOS
    • EduVPN-macOS
    • GovVPN-macOS
    • GovVPN-iOS

Duplicate symbols while building

In case you see errors about "duplicate symbols", they are because Go's C runtime is included in both libeduvpn-common and wireguard-go. We don't need wg-go in the app, but Xcode adds it unwantedly. To remove it:

  1. Open the project in Xcode: open EduVPN/EduVPN.xcodeproj/
  2. Go to: View > Navigators > Project (if this has no visible effect, that's fine, you might already in the correct tab)
  3. Select the EduVPN project in the top of the list on the left pane
  4. Under TARGETS in the editor pane, select either EduVPN-macOS or EduVPN-iOS, depending on the platform you're building for
  5. Go to the Build Phases tab
  6. Under Link Binary With Libraries, click on WireGuardKit, and then click on '-'
  7. Build / Archive

Errors about missing files

In case you see any errors like "Build input file cannot be found", you can try doing this in Xcode:

  1. Product > Clean Build Folder...
  2. File > Packages > Reset Package Caches