Giter Site home page Giter Site logo

adguardteam / adguardforios Goto Github PK

View Code? Open in Web Editor NEW
1.4K 90.0 200.0 643.22 MB

The most advanced ad blocker for iOS

Home Page: https://adguard.com/

License: GNU General Public License v3.0

Objective-C 3.93% JavaScript 57.15% Shell 0.05% CSS 0.25% C 0.02% Swift 36.22% Ruby 0.20% Python 0.20% HTML 0.01% TypeScript 1.96% IDL 0.01%
adguard safari ios adblock content-blocker open-source

adguardforios's Introduction

 

AdGuard for iOS

The most advanced Safari content blocker and privacy keeper for iOS

Top-notch ad blocking in Safari, anti-tracking protection and DNS privacy.

Website | Reddit | Twitter | Telegram

Latest release iTunes App Store

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.

Contribution

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 and click the New issue button.

Note: for the filter-related issues (missed ads, false positives etc.) use our reporting tool.

Translating AdGuard

If you want to help with AdGuard translations, please learn more about translating our products here: https://kb.adguard.com/en/general/adguard-translations

Other options

Here is a dedicated page for those who are willing to contribute.

How to become a beta tester?

You can submit an application to participate in AdGuard for beta-testing program. All necessary information on this topic can be found on the dedicated page.

Our plans

To see the 'big picture', to watch current progress and to get an idea of approximate dates for upcoming AdGuard for iOS releases, see this page: https://github.com/AdguardTeam/AdguardForIos/milestones

How to build

(optional) Install a newer ruby version:

brew install ruby

Add to your ~/.bash_profile

export PATH="/usr/local/opt/ruby/bin:$PATH"
export PATH="/usr/local/lib/ruby/gems/2.7.0/bin:$PATH"

Prepare

Prepare and install Ruby bundler:

  • sudo gem install bundler

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 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

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:

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.

Run this command to generate FASTLANE_SESSION which you'll then need to use on the CI server:

bundle exec fastlane auth

Acknowledgments

Please visit the acknowledgements page

adguardforios's People

Contributors

08kovalchuk03 avatar ameshkov avatar artembaskal avatar artemiv4nov avatar dependabot[bot] avatar ivaniin avatar jeehut avatar maximtop avatar mizzick avatar natamai avatar sergeyberdov avatar sfionov avatar stillness-2 avatar tvinzz avatar vbagirov avatar versty avatar vozersky avatar zebrum avatar zzebrum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adguardforios's Issues

A rule from German filter is converted with error

The rule itself:

@@/^https?\:\/\/(?!(qs\.ivwbox\.de|qs\.ioam.de|platform\.twitter\.com|connect\.facebook\.net|de\.ioam\.de|pubads\.g\.doubleclick\.net|stats\.wordpress\.com|www\.google-analytics\.com|www\.googletagservices\.com|apis\.google\.com|script\.ioam\.de)\/)/$script,third-party,domain=gamona.de

For some reason this rule is converted with | mark which is not supported by Safari regular expressions subset.

Here is the conversion result:

[
    {
        "trigger": {
            "url-filter": "^https?\\:\\/\\/(?!(qs\\.ivwbox\\.de|qs\\.ioam.de|platform\\.twitter\\.com|connect\\.facebook\\.net|de\\.ioam\\.de|pubads\\.g\\.doubleclick\\.net|stats\\.wordpress\\.com|www\\.google-analytics\\.com|www\\.googletagservices\\.com|apis\\.google\\.com|script\\.ioam\\.de)\\/)",
            "resource-type": [
                "script"
            ],
            "load-type": [
                "third-party"
            ],
            "if-domain": [
                "*gamona.de"
            ]
        },
        "action": {
            "type": "ignore-previous-rules"
        }
    }
]

Implement "Edit" mode in the filters list

From #11

One more thing: Turning it on and off quickly wouldn't work that way nevertheless, since the app (or the OS) needs too much time to load the changed set of filters. It would not be possible to work through the filters list as fast as you read the filter names and swipe them to toggle just how you need them.

So - with that in mind, it might be nice to have an edit mode. Like: have an "edit"-Button in the upper right (making that feature obvious), tap it, have all the > signs replaced with a toggle, work fast through the filter list toggling them as needed, tap "done", and wait until the new filter set is loaded.

That way, you can first concentrate on customizing the filter list without constantly being interrupted by the app loading filters, and give the app time to load the filters when you are done.

Edit privacy policy according to #34

Now, when user sends bug report to support, app collects current state data, for example:

Application version: 1.0.3.23.DEBUG
Application lifetime: 2015-10-23 10:26:37 +0000

Device: iPad
Platform: iPhone OS
OS: 9.1
ID: 47082D0B-DA29-4CD0-BE51-2FF94A7B0DCC

Locale: en
Region: us

Filters subscriptions:
ID=0 Name="User filter" Version=1.0.0.0 Enabled=YES
ID=2 Name="English filter" Version=1.0.71 Enabled=YES
ID=3 Name="Spyware filter" Version=1.0.3.75 Enabled=YES
ID=4 Name="Social media filter" Version=1.0.7.28 Enabled=YES
ID=5 Name="Experimental filter" Version=1.0.23.14 Enabled=NO
ID=10 Name="Filter for useful ads" Version=1.0.0.78 Enabled=NO
ID=1 Name="Russian filter" Version=1.0.28.9 Enabled=NO
ID=6 Name="German filter" Version=1.0.21.53 Enabled=NO
ID=7 Name="Japanese filter" Version=1.0.92.87 Enabled=NO
ID=9 Name="Spanish/Portuguese filter" Version=1.0.86.8 Enabled=NO
ID=12 Name="Mobile Safari filter" Version=1.0.0.5 Enabled=NO

ID: 47082D0B-DA29-4CD0-BE51-2FF94A7B0DCC - this is identifierForVendor: "An alphanumeric string that uniquely identifies a device to the app’s vendor.", which is sent, also, when filter update request is performed.

Cannot add link to the whitelist

Steps to reproduce

  1. Open any website in Safari
  2. Copy URL
  3. Go to Adguard's Whitelist
  4. Tap "+" icon
  5. Try to paste the URL

Expected result:
URL is pasted

Result:
None

We should transform URL to domain name

Redesign filters list - it is not obvious how to get to filter details now

Report from a beta tester:

  • UI: Actually, I needed to watch the Quick Tour twice to find out that I can tap on a filter to get Details to it. I think there should be a visual hint for that. At first, a chevron on the right end of each filter came to my mind, but I can't remember if I've ever seen a combination of an on/off-toggle with a chevron. Then the blue (i) came to my mind (like at the wifi settings), but actually I don't like the look of that symbol. May be a simple text below the search bar: "tap on a filter to get more information"?

Redesign of the background filters update

May be we need to check version number of the filters synchronously, but download of the filter rules to do asynchronously, in system background download task (NSURLSession).

no work Ipad 9.1.3

no work Ipad 9.1.3
It is not possible to download
Your application is incompatible with your device

Add $cookie modifier support

That's simple, if $cookie modifier is present, we do not block the request, just suppressing "Cookie" and "Set-Cookie".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.