Disabling one app's cellular data inadvertently disabling other apps? I'm trying to get around a strange problem concerning an iOS app my company produces. We use a branding process to brand a single executable, assigning it new resources and a new bundle id, but keeping the same core executable across brands.

The problem is when a phone has multiple different brands installed, disabling one app for cellular connectivity is inadvertently disabling all of them, and I can't figure out why.

To reiterate, each app naturally has its own bundle id, so why would disabling cellular data for one app cause it to break for other brands?
I did some further investigation and experimentation, and from what I can tell, iOS is identifying the disabled app based on the app binary in some fashion. That is, the actual embedded executable file inside the app bundle, instead of the bundle id as one would intuitively expect.

If I create two different builds, and brand them into several brands each, then disabling one of the branded apps disables cellular connectivity for all brands in that group (i.e. that share the same underlying binary), but do not affect those brands built with a different binary. Furthermore, renaming the embedded binary file has no effect, so it's clearly basing it on the contents of the executable (perhaps a checksum or internal identifier).

As far as I can tell this is just a bug in the implementation of this feature on iOS, and I can't think of any way around this that doesn't involve completely changing how we are branding our apps. I've submitted a bug report to Apple.