Uncover network traffic in real-time for every app on your phone
Clone or download
Pull request Compare This branch is 46 commits ahead of agrinman:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Artwork
Sift.xcodeproj
Sift.xcworkspace
Sift
SiftControl
SiftData
docu/HowToInstall
screens
.gitignore
LICENSE
Podfile
Podfile.lock
README.md

README.md

What changed in this fork?

Not much, but some!

UI

  • Moved to a navigation style presentation where 1st screen shows all apps known to Sift. On choosing an app, all the rules are displayed for the app in another view.
    • Why? Because when you have a lot of apps, showing them in a single view is overwhelming. Can't reach a rule without search.
  • Apps are now shown in alphabetic order now.

Technical

  • Move away from submodules to pods
  • Fix gitignore
  • A lot of whitespace fixes to make code more readable

Questions unanswered

  1. How is the core data holding up?!
  2. Why are there so many types of rules?!
    • There are two rules, one an entity in data model and another is the struct Rule.
    • A single entity type encapsulating an app and a host should've been enough for all our needs. I am yet to find a use case for wild cards.
    • The struct Rule has three types handling the case of having rules per app and per host. From what I could understand, it eases implementation of "Drop for all apps". Though I guess same could be achieved by abstracting this idea in controller/business layer instead of data layer. The code for table view is difficult to understand because of the code handling all the different types.

Sift app

Sift shows you what every app on your phone is really doing. Uncover network traffic in real-time for every app on your phone. Create rules to block sites like ads and tracking pages.

  • Inspect network traffic
  • Monitor background activity
  • Block bad sites and tracking pages
  • iOS Developers: debug networking in your live apps

If Sift is useful to you...please support ongoing development!

BTC: 3JtkeGRHyJbDjiwPMX7PACQYEtReHgRDW8

PayPal:

About

Sift can answer questions like: are apps tracking me even if I disable analytics? are apps malicious? are they connecting to strange urls? are they doing network activity in the background?

Inspect network traffic for any app on your phone. Using push notifications, Sift shows you real-time network requests made by other apps.

Monitor background activity. Sift can even show you what network requests apps are making in the background.

Create rules to block urls like tracking sites, ads, etc. Use Sift to block any site you don't like for every app on your phone.

Debugging tool for developers Use Sift to debug network traffic for your production app: inspect background activity, see how your app handles connection failures to certain sites, etc.

Sift is completely private Sift never shares or sends your network traffic data anywhere. Data that Sift collects never leaves your phone.

Examples

Sift shows you what an app is doing by pushing a notification in real-time. Later you can open Sift and create rules for blocking sites.

FAQ

Why isn't Sift on the App Store?

It turns it out that network content filters are not permitted for regular app store apps (it only works in supervised device mode). So I decided to release the source code instead -- any donations are greatly appreciated :)

How do I use it/install it?

Make sure you have XCode installed. Clone the code, update submodule (git submodule update --init --recursive). Open the .xcodeproj file. Then:

  1. Change the development team to your own in both the app and extensions targets
  2. Search for occurences of "in.alexgr." in the project and replace each one with your own team identifier.
  3. Connect your iDevice and hit run.

Note: you might have to authorize XCode to deploy to your device/sign into iCloud in XCode.

You can find a step-by-step workthrough in ". docu/HowToInstall/README.md"

Is there XCode 10 support?

Yep -- just switch to the xcode-10 branch.