Windscribe for iOS and tvOS are native apps written in Swift language. Some features include multiple protocols, per network configuration, On-Demand mode.
Windscribe iOS and tvOS app can be downloaded from App Store Link
Check our Acknowledgements file for the list of third parties libraries we use in this project
- iOS 12.0+
- tvOS 17.0+
- Xcode 15.0+
- Swift 5.0+
- CocoaPods 1.15.2+
- Go 1.16+
- swiftlint
- go
- CocoaLumberjack/Swift
- Realm
- RealmSwift
- IQKeyboardManagerSwift
- ExpyTableView
- SwipeCellKit
- AES256Encrypter
- OpenVPNAdapter
- RxSwift
- RxGesture
- RxDataSources
- Swinject
- RxRealm
- MockingbirdFramework
- Make sure following dependencies are installed
- Run all the following installations on the terminal
- Install Swift Lint
brew install swiftlint go
- Install Cocoa Pods
gem install cocoapods
- clone this repository
- `$ cd` into the project root directory
- open the pode file '$ open podfile' make sure the flag `is_tvos` is correct for the platform you are running
(`false` if you are trying to run for iOS and `true` if you are trying to run for tvOS)
- Run pod install to pull project dependencies
```sh
pod install
- Open 'Windscribe.xcworkspace' in Xcode
- Select 'Windscribe-Default' scheme
- Open Windscribe > Enviroments > Config.xcconfig. Set your Team ID, App Bundle ID.
- Setup signing with an Apple paid developer account(Windscribe > Target > Signing and capabilities)
- Clean project (Product > clean Build folder - Cmd+Shift+K)
- Click File > Packages > Resolve package versions.
- Connect to a device, iphone/iPad for iOS, and apple tv for tvOS and run - Simulators are now supported in the default scheme, but you will not be able to connect to a VPN
- Check the the flag
is_tvos
on the podfile - Clean Build
- Clear Xcode derived data (File > Workspace settings)
- Clear pod cache
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
- fork this repository
- follow build instructions
- fix linter warnings and errors before submitting
swiftlint lint
The project is using Semantic Versioning (SemVer) for creating release versions.
Major.Minor.Patch