Ah! Thanks. It might be worthwhile to mention in the FAQ that not this does not run on all devices running iOS 9. The App Store description shows a list of supported devices, but because of the fragmentation of the iOS market :-), it is so long and incomprehensible that I don't bother to read it.
And no, I don't think "requires a 64-bit CPU" is sufficient to describe it.
I guess they are assuming that if you are installing a content blocker, you are tech savvy enough to know what CPU the device you own has. I agree this is a problem. This is a transition period. Most likely iOS 10 will be 64-bit only, so these kind of problems will get worse before disappearing altogether.
This is really annoying. I don't want to update my phone to iOS 9 until a jailbreak is out, and my old phone is an iPhone 4S so I can't try out ad blockers on it.
Not even the iPhone 5 is supported on all three (now 2 given Marco removing PEACE) ad-blockers. This is why even though I have an iPhone, I prefer my Android device. UPDATE: just found out about WeBlock. Works on iOS devices with iOS6+
Apparently, content blockers work on 32-bit CPUs, but Apple is restricting them on the store to 64-bit only. So you can go the BlockParty + EasyList route:
https://github.com/krishkumar/BlockParty
Another open-source iOS 9 content blocker here, using EasyList and EasyPrivacy: https://github.com/ArmandGrillet/Adios (I'm the guy behind this project).
As a data point, I just built/installed BlockParty on iPhone 5 and iPad Retina and see nothing but performance improvement. Many thanks again for the link!
Note: Apps containing content blocking extensions for Safari on iOS are available only on 64-bit devices, due to performance limitations of 32-bit devices.
According to the release notes for Safari 9 [1], it's because of performance concerns: "Apps containing content blocking extensions for Safari on iOS are available only on 64-bit devices, due to performance limitations of 32-bit devices"
I imagine there's no real reason that content blocking shouldn't work on 32-bit devices, but that Apple are trying to hit certain minimum performance numbers (for marketing/brand purposes)... and I'm sure they won't be upset if this should happen to encourage a few users of older devices to upgrade (i.e. forced obsolescence).
I think there are various examples of Apple doing this kind of thing (saying a certain generation of hardware is supported by software X, but then you find various things are disabled for you). Not exactly the same, but pre-2011 Macs cannot mirror their display via AirPlay (Apple saying the video hardware isn't up to the task) -- at least not until you install the third-party app AirParrot, then it works fine.
The 64-bit CPUs have a wider (and thus effectively faster) bus, and content blocking is probably rather strenuous on CPU cache (lots of string/pattern matching?). While the 64-bit cutoff is likely mostly a marketing artifact, content blocking on 32-bit CPUs could actually be 2x slower or worse than 64-bit CPUs and thus make page rendering times very painful for some sites.
Nope, it is pure marketing. There is no technical reason whatsoever for ad-blocking to require a 64 bit CPU or databus. It actually works fine on a single-core sub-Ghz ARM7 like that used in my phone (Motorola Defy) with all of 512MiB of memory.
Huh, did you really run iOS9 ad blocking on a Motorola Defy? I definitely believe Apple's position is 99% marketing, but I can imagine there are some common pages that load really slow on older hardware. I've seen older iPads crash consistently trying to render complicated pages.
Because apple knows ad-blocking is a much-desired feature, and as such can be used to 'convince' people it is time to ditch their 'older' devices (which, technically speaking, have no problems whatsoever in running ad-blocking software) and buy the latest&greatest.
For those doubting ad-blocking works on 32-bit ARM, have a look at the multitude of Android devices. Nearly all of them use a 32 bit CPU. Many of them run some form of ad-blocking software, ranging from proxy-based systems (a la privoxy) to browser plugins to host-based blocking. Often a combination of these are used, all on those 32 bit CPU's.
And no, I don't think "requires a 64-bit CPU" is sufficient to describe it.