Explore
Topics
Collections
Documents
FAQ
GitHub
Explore repos
Explore
Topics
Collections
Documents
FAQ
GitHub
Explore repos
Explore
/
Swift
/
AdguardForiOS
AdguardTeam
AdguardTeam/AdguardForiOS
The most advanced ad blocker for iOS
View on GitHub
Website / Demo
Copy link
Back to listing
1.7k
stars
249
forks
22
contributors
Swift
README.md
View on GitHub
<p align="center"> <img src="https://cdn.adguard.com/public/Adguard/Common/Logos/ios.svg" width="300px" alt="AdGuard for iOS" /> </p> <h3 align="center">The most advanced Safari content blocker and privacy keeper for iOS</h3> <p align="center"> Top-notch ad blocking in Safari, anti-tracking protection and DNS privacy. </p> <p align="center"> <a href="https://adguard.com/adguard-ios/overview.html">Website</a> | <a href="https://reddit.com/r/Adguard">Reddit</a> | <a href="https://x.com/AdGuard">X</a> | <a href="https://t.me/adguard_en">Telegram</a> <br/><br/> <a href="https://github.com/AdguardTeam/AdguardForiOS/releases"><img src="https://img.shields.io/github/release/AdguardTeam/AdguardForiOS/all.svg" alt="Latest release" /></a> <a href="https://agrd.io/ios"><img alt="iTunes App Store" src="https://img.shields.io/itunes/v/1047223162.svg"></a> </p> <br /> <p align="center"> <img src="https://user-images.githubusercontent.com/17472907/105178597-4b542000-5b39-11eb-86ed-136f0697bcec.png" width="250"> <img src="https://user-images.githubusercontent.com/17472907/105178604-4f803d80-5b39-11eb-9381-24682e06b8d8.png" width="250"> <img src="https://user-images.githubusercontent.com/17472907/105339304-93347f00-5bed-11eb-99b6-ab438b34eb34.png" width="250"> <img src="https://user-images.githubusercontent.com/17472907/105178609-50b16a80-5b39-11eb-9723-5179fb811b65.png" width="250"> <img src="https://user-images.githubusercontent.com/17472907/105339299-92035200-5bed-11eb-87ef-a7171432fe5d.png" width="250"> <img src="https://user-images.githubusercontent.com/17472907/105178607-5018d400-5b39-11eb-97d6-9dc792b28654.png" width="250"> </p> <br /> AdGuard for iOS is an app that blocks ads in Safari browser at exceptional level, and also provides additional Premium features like configurable DNS settings, encrypted DNS support (DOH, DOT, DNSCrypt), and custom ad blocking subscriptions. To get more information and to download AdGuard for iOS, [visit our website](https://adguard.com/adguard-ios/overview.html). <br /> - [Contribution](#contribution) - [How to report an issue](#issue) - [Translating AdGuard](#contribution-translating) - [Other options](#contribution-other) - [How to become a Beta tester](#beta-tester) - [How to build](#how-to-build) <br /> <a id="contribution"></a> ## Contribution <a id="issue"></a> ### How to report an issue GitHub can be used to report a bug or to submit a feature request. To do so, go to [this page](https://github.com/AdguardTeam/AdGuardforiOS/issues) and click the _New issue_ button. > **Note:** for the filter-related issues (missed ads, false positives etc.) use our [reporting tool](https://link.adtidy.org/forward.html?action=report&app=home&from=github). <a id="contribution-translating"></a> ### Translating AdGuard If you want to help with AdGuard translations, please learn more about translating our products [here](https://adguard.com/kb/miscellaneous/contribute/translate/program/). <a id="contribution-other"></a> ### Other options Here is a [dedicated page](https://adguard.com/contribute.html) for those who are willing to contribute. <a id="beta-tester"></a> ### How to become a beta tester You can use TestFlight to participate in the AdGuard for iOS beta-testing program. All necessary information on this topic can be found on the [dedicated page](https://adguard.com/beta.html?platform=ios). <a id="how-to-build"></a> ## How to build ### Install node v22 and yarn Use [nvm](https://github.com/nvm-sh/nvm) to install node 22, it is required to build the web extension. ```sh nvm install 22 nvm alias default 22 npm install -g yarn ``` ### Install a newer ruby version ```sh brew install ruby ``` Add to your `~/.zshrc` ```sh echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc ``` ### Prepare Prepare and install Ruby bundler: - `gem install bundler -v 2.3.9` Configure bundler to use local directory for storing dependencies: - `bundle config set --local path '.bundle/vendor'` Then run bundle install: - `bundle install` **IMPORTANT:** before running Fastlane, you need to place the [App Store Connect API key](https://docs.fastlane.tools/app-store-connect-api/#using-an-app-store-connect-api-key) to `fastlane/AuthKey.p8`. Then you can run Fastlane using a command like this: - `bundle exec fastlane [lane]` Register your device: - `bundle exec fastlane run register_device udid:"UUID" name:"Device name"` ### Codesigning Note, that by default these commands will only work for AdGuard, not AdGuard Pro. For AdGuard Pro you need to run them with `--env pro`. Run this command to get proper codesigning certificates: - `bundle exec fastlane prepare` ### Actions - `bundle exec fastlane tests` -- run tests - `bundle exec fastlane build` -- build version for App Store Actions below are supposed to be used from CI only: - `bundle exec fastlane adhoc` -- build adhoc version (for inner testing) - `bundle exec fastlane increment` -- increments build number, commits it to git - `bundle exec fastlane testflight_beta` -- upload previously built version to testflight In the case when certificate expires, you may need to nuke the old certs and generate them again: ```sh bundle exec fastlane match nuke development bundle exec fastlane match nuke distribution bundle exec fastlane generate ``` In order for fastlane to work properly in CI environment, we use [spaceauth](https://docs.fastlane.tools/best-practices/continuous-integration/#use-of-application-specific-passwords-and-spaceauth). Run this command to generate `FASTLANE_SESSION` which you'll then need to use on the CI server: ```sh bundle exec fastlane auth ``` ### Acknowledgments Please visit the acknowledgements [page](https://kb.adguard.com/miscellaneous/acknowledgments#ios)
Live Chat