{"id":14582821,"url":"https://github.com/ivpn/ios-app","last_synced_at":"2025-04-09T11:32:51.482Z","repository":{"id":37395590,"uuid":"239475352","full_name":"ivpn/ios-app","owner":"ivpn","description":"Official IVPN iOS app","archived":false,"fork":false,"pushed_at":"2025-03-20T12:59:26.000Z","size":9405,"stargazers_count":491,"open_issues_count":26,"forks_count":96,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2025-03-20T14:07:10.099Z","etag":null,"topics":["ios","ivpn","privacy","security","swift","vpn","vpn-client"],"latest_commit_sha":null,"homepage":"https://www.ivpn.net/apps-ios","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivpn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-10T09:39:20.000Z","updated_at":"2025-03-20T12:59:27.000Z","dependencies_parsed_at":"2023-09-29T08:39:41.535Z","dependency_job_id":"d8fd36bc-c804-4ece-859f-dad352b8965d","html_url":"https://github.com/ivpn/ios-app","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivpn%2Fios-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivpn%2Fios-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivpn%2Fios-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivpn%2Fios-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivpn","download_url":"https://codeload.github.com/ivpn/ios-app/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248031902,"owners_count":21036491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","ivpn","privacy","security","swift","vpn","vpn-client"],"created_at":"2024-09-08T01:01:11.143Z","updated_at":"2025-04-09T11:32:51.450Z","avatar_url":"https://github.com/ivpn.png","language":"Swift","readme":"# IVPN for iOS\n\n![CI](https://github.com/ivpn/ios-app/workflows/CI/badge.svg)\n![SwiftLint](https://github.com/ivpn/ios-app/workflows/SwiftLint/badge.svg)\n![Lint Code Base](https://github.com/ivpn/ios-app/workflows/Lint%20Code%20Base/badge.svg)\n\n**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.  \nIVPN iOS app is distributed on the [App Store](https://apps.apple.com/us/app/ivpn-serious-privacy-protection/id1193122683?mt=8).  \n\n* [About this Repo](#about-repo)\n* [Installation](#installation)\n* [Testing](#testing)\n* [Deployment](#deployment)\n* [Versioning](#versioning)\n* [Contributing](#contributing)\n* [Security Policy](#security)\n* [License](#license)\n* [Authors](#Authors)\n* [Acknowledgements](#acknowledgements)\n\n\u003ca name=\"about-repo\"\u003e\u003c/a\u003e\n## About this Repo\n\nThis is the official Git repo of the [IVPN for iOS project](https://github.com/ivpn/ios-app).\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n## Installation\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Requirements\n\n- iOS 14.0+\n- Xcode 14.0+\n- Swift 5.0+\n- fastlane 2.178.0+\n- Go 1.18+\n\n### Dev dependencies\n\nProject dev dependencies:  \n\n* [fastlane](https://fastlane.tools)  \n* [SwiftLint](https://github.com/realm/SwiftLint)  \n* [Go](https://golang.org)  \n\nInstall fastlane, SwiftLint and Go:  \n\n```sh\nbrew install fastlane swiftlint go\n```\n\n### Dependencies\n\nDependencies are installed with [Swift Package Manager](https://swift.org/package-manager/).\n\nProject dependencies:  \n\n* [WireGuardKit](https://github.com/WireGuard/wireguard-apple)  \n* [TunnelKit](https://github.com/passepartoutvpn/tunnelkit)  \n* [SnapKit](https://github.com/SnapKit/SnapKit)  \n* [KeychainAccess](https://github.com/kishikawakatsumi/KeychainAccess)  \n* [SwiftyStoreKit](https://github.com/bizz84/SwiftyStoreKit)  \n* [JGProgressHUD](https://github.com/JonasGessner/JGProgressHUD)  \n* [ActiveLabel](https://github.com/optonaut/ActiveLabel.swift)  \n* [ReachabilitySwift](https://github.com/ashleymills/Reachability.swift)  \n* [FloatingPanel](https://github.com/scenee/FloatingPanel)  \n\n### Xcode build configurations\n\nThere are different build configurations: Staging and Release. \n\nRename and populate `.xcconfig` files: \n\n```sh\ncp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig  \ncp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig  \n```\n\n### OpenVPN configuration\n\nRename and populate `OpenVPNConf.swift` file: \n\n```sh\ncp IVPNClient/Config/OpenVPNConf.template.swift IVPNClient/Config/OpenVPNConf.swift\n```\n\n### Build V2RayControl.xcframework\n\nBuild `V2RayControl.xcframework`:\n\n```sh\n./build-v2ray.sh\n```\n\n### Build liboqs.a\n\nTo compile  [liboqs](https://github.com/open-quantum-safe/liboqs), additional packages are required:  \n\n```sh\nbrew install cmake ninja openssl@1.1 wget doxygen graphviz astyle valgrind\npip3 install pytest pytest-xdist pyyaml\n```\n\nBuild `liboqs.a`:  \n\n```sh\n./build-liboqs.sh\n```\n\n### Fastlane configuration\n\nRename and populate `Appfile` files: \n\n```sh\ncp fastlane/Appfile.template fastlane/Appfile\n```\n\n\u003ca name=\"testing\"\u003e\u003c/a\u003e\n## Testing\n\nRun code linter using fastlane:  \n\n```sh\nfastlane lint\n```\n\nRun tests using fastlane:  \n\n```sh\nfastlane test\n```\n\nAlternatively, run tests using xcodebuild:  \n\n```sh\nxcodebuild test -scheme IVPNClient -destination 'platform=iOS Simulator,name=iPhone 14'\n```\n\n\u003ca name=\"deployment\"\u003e\u003c/a\u003e\n## Deployment\n\nTo build and deploy beta build to TestFlight:  \n\n```sh\nfastlane beta\n```\n\nTo build and deploy staging build to TestFlight:  \n\n```sh\nfastlane staging\n```\n\nTo build and deploy App Store release build to TestFlight:  \n\n```sh\nfastlane release\n```\n\n\u003ca name=\"versioning\"\u003e\u003c/a\u003e\n## Versioning\n\nProject is using [Semantic Versioning (SemVer)](https://semver.org) for creating release versions.\n\nSemVer is a 3-component system in the format of `x.y.z` where:\n\n`x` stands for a **major** version  \n`y` stands for a **minor** version  \n`z` stands for a **patch**\n\nSo we have: `Major.Minor.Patch` \n\n\u003ca name=\"contributing\"\u003e\u003c/a\u003e\n## Contributing\n\nIf you are interested in contributing to IVPN for iOS project, please read our [Contributing Guidelines](/.github/CONTRIBUTING.md).\n\n\u003ca name=\"security\"\u003e\u003c/a\u003e\n## Security Policy\n\nIf you want to report a security problem, please read our [Security Policy](/.github/SECURITY.md).\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n## License\n\nThis project is licensed under the GPLv3 - see the [License](/LICENSE.md) file for details.\n\n\u003ca name=\"authors\"\u003e\u003c/a\u003e\n## Authors\n\nSee the [Authors](/AUTHORS) file for the list of contributors who participated in this project.\n\n\u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n## Acknowledgements\n\nSee the [Acknowledgements](/ACKNOWLEDGEMENTS.md) file for the list of third party libraries used in this project.\n","funding_links":[],"categories":["Security","Official"],"sub_categories":["RSS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivpn%2Fios-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivpn%2Fios-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivpn%2Fios-app/lists"}