Skip to content

Latest commit

 

History

History
115 lines (84 loc) · 3.53 KB

File metadata and controls

115 lines (84 loc) · 3.53 KB

Windscribe for iOS and tvOS

Windscribe for iOS and tvOS are native apps written in Swift. Features include support for multiple VPN protocols, per-network configuration, and On-Demand mode.

Download and install

Windscribe iOS and tvOS app can be downloaded from the App Store:
Link

Acknowledgements

Check our Acknowledgements file for a list of third-party libraries used in this project.

Build from source

Requirements

  • iOS 15.0+
  • tvOS 17.0+
  • Xcode 15.0+
  • Swift 5.9+
  • Go 1.16+

Development dependencies

  • swiftlint
  • go

Project dependencies

Build

  1. Clone this repository

    git clone <repo-url>
    cd Windscribe
  2. Open the project in Xcode

    open Windscribe.xcodeproj
  3. In Xcode, go to File > Packages > Add Package Dependencies and ensure all required Swift packages are properly resolved.

  4. Choose the correct scheme from the available options:

    • Windscribe-Default (release configuration with debug flags enabled)
    • Windscribe-Release
    • Windscribe-Staging
    • Windscribe-tvOS (for building and running on Apple TV devices)
  5. Navigate to Windscribe/Environments/Config.xcconfig and set your:

    • Team ID
    • App Bundle ID
  6. Set up code signing under Targets > Signing & Capabilities using your Apple Developer account.

  7. Clean the project:

    • Product > Clean Build Folder (Cmd + Shift + K)
  8. Resolve all packages:

    • File > Packages > Resolve Package Versions
  9. Connect a real device (iPhone/iPad for iOS or Apple TV for tvOS) and run the app.

    Simulators are supported, but VPN connections require physical hardware.

Troubleshoot

  • If build fails or dependencies don't resolve:
    • Clear Derived Data: Xcode > Settings > Locations > Derived Data
    • Reopen the project and resolve packages again

Pull request

  • Fork this repository
  • Create an issue first and describe your proposed changes or bug fix
  • Submit a pull request referencing the issue number
  • Ensure the code builds successfully and passes linting:
    swiftlint lint

Versioning

This project uses Semantic Versioning:

Major.Minor.Patch (BuildNumber)

Example: 3.8.5 (22) on TestFlight