Disabling one app's cellular data inadvertently disabling other apps?

Solution 1:

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.