Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ivpn/ios-app
Official IVPN iOS app
https://github.com/ivpn/ios-app
ios ivpn privacy security swift vpn vpn-client
Last synced: 2 months ago
JSON representation
Official IVPN iOS app
- Host: GitHub
- URL: https://github.com/ivpn/ios-app
- Owner: ivpn
- License: gpl-3.0
- Created: 2020-02-10T09:39:20.000Z (over 4 years ago)
- Default Branch: develop
- Last Pushed: 2024-09-07T08:14:47.000Z (2 months ago)
- Last Synced: 2024-09-07T09:28:32.884Z (2 months ago)
- Topics: ios, ivpn, privacy, security, swift, vpn, vpn-client
- Language: Swift
- Homepage: https://www.ivpn.net/apps-ios
- Size: 8.79 MB
- Stars: 431
- Watchers: 16
- Forks: 88
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
- Authors: AUTHORS
Awesome Lists containing this project
- fucking-open-source-ios-apps - IVPN
README
# IVPN for iOS
![CI](https://github.com/ivpn/ios-app/workflows/CI/badge.svg)
![SwiftLint](https://github.com/ivpn/ios-app/workflows/SwiftLint/badge.svg)
![Lint Code Base](https://github.com/ivpn/ios-app/workflows/Lint%20Code%20Base/badge.svg)**IVPN for iOS** is a native app built using Swift language. Some of the features include: multiple protocols (IKEv2, OpenVPN, WireGuard), Kill-switch, Multi-Hop, Trusted Networks, AntiTracker, Custom DNS, Dark mode and more.
IVPN iOS app is distributed on the [App Store](https://apps.apple.com/us/app/ivpn-serious-privacy-protection/id1193122683?mt=8).* [About this Repo](#about-repo)
* [Installation](#installation)
* [Testing](#testing)
* [Deployment](#deployment)
* [Versioning](#versioning)
* [Contributing](#contributing)
* [Security Policy](#security)
* [License](#license)
* [Authors](#Authors)
* [Acknowledgements](#acknowledgements)This is the official Git repo of the [IVPN for iOS project](https://github.com/ivpn/ios-app).
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
### Requirements
- iOS 14.0+
- Xcode 14.0+
- Swift 5.0+
- fastlane 2.178.0+
- Go 1.18+### Dev dependencies
Project dev dependencies:
* [fastlane](https://fastlane.tools)
* [SwiftLint](https://github.com/realm/SwiftLint)
* [Go](https://golang.org)Install fastlane, SwiftLint and Go:
```sh
brew install fastlane swiftlint go
```### Dependencies
Dependencies are installed with [Swift Package Manager](https://swift.org/package-manager/).
Project dependencies:
* [WireGuardKit](https://github.com/WireGuard/wireguard-apple)
* [TunnelKit](https://github.com/passepartoutvpn/tunnelkit)
* [SnapKit](https://github.com/SnapKit/SnapKit)
* [KeychainAccess](https://github.com/kishikawakatsumi/KeychainAccess)
* [SwiftyStoreKit](https://github.com/bizz84/SwiftyStoreKit)
* [JGProgressHUD](https://github.com/JonasGessner/JGProgressHUD)
* [ActiveLabel](https://github.com/optonaut/ActiveLabel.swift)
* [ReachabilitySwift](https://github.com/ashleymills/Reachability.swift)
* [FloatingPanel](https://github.com/scenee/FloatingPanel)### Xcode build configurations
There are different build configurations: Staging and Release.
Rename and populate `.xcconfig` files:
```sh
cp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig
cp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig
```### OpenVPN configuration
Rename and populate `OpenVPNConf.swift` file:
```sh
cp IVPNClient/Config/OpenVPNConf.template.swift IVPNClient/Config/OpenVPNConf.swift
```### Build V2RayControl.xcframework
Build `V2RayControl.xcframework`:
```sh
./build-v2ray.sh
```### Build liboqs.a
To compile [liboqs](https://github.com/open-quantum-safe/liboqs), additional packages are required:
```sh
brew install cmake ninja [email protected] wget doxygen graphviz astyle valgrind
pip3 install pytest pytest-xdist pyyaml
```Build `liboqs.a`:
```sh
./build-liboqs.sh
```### Fastlane configuration
Rename and populate `Appfile` files:
```sh
cp fastlane/Appfile.template fastlane/Appfile
```Run code linter using fastlane:
```sh
fastlane lint
```Run tests using fastlane:
```sh
fastlane test
```Alternatively, run tests using xcodebuild:
```sh
xcodebuild test -scheme IVPNClient -destination 'platform=iOS Simulator,name=iPhone 14'
```To build and deploy beta build to TestFlight:
```sh
fastlane beta
```To build and deploy staging build to TestFlight:
```sh
fastlane staging
```To build and deploy App Store release build to TestFlight:
```sh
fastlane release
```Project is using [Semantic Versioning (SemVer)](https://semver.org) for creating release versions.
SemVer is a 3-component system in the format of `x.y.z` where:
`x` stands for a **major** version
`y` stands for a **minor** version
`z` stands for a **patch**So we have: `Major.Minor.Patch`
If you are interested in contributing to IVPN for iOS project, please read our [Contributing Guidelines](/.github/CONTRIBUTING.md).
If you want to report a security problem, please read our [Security Policy](/.github/SECURITY.md).
This project is licensed under the GPLv3 - see the [License](/LICENSE.md) file for details.
See the [Authors](/AUTHORS) file for the list of contributors who participated in this project.
See the [Acknowledgements](/ACKNOWLEDGEMENTS.md) file for the list of third party libraries used in this project.