Search code examples
iosreachabilitymobile-data

Separate iOS apps rely on each other's mobile data permission


I have two iOS apps: App One (com.example.appone) and App Two (com.example.apptwo). Both apps use Reachability to detect if the app can access the Internet.

Both apps work fine on WiFi but I am experiencing some very weird behaviour when using them on mobile data. If mobile data is enabled in Settings for one of the apps but not the other, neither of them is able to use it.

Here's a summary of the mobile data permissions and the ability of the apps to use mobile data.

  • AppOne not allowed, AppTwo not allowed, AppOne and AppTwo unable to use mobile data
  • AppOne allowed, AppTwo not allowed, AppOne and AppTwo unable to use mobile data
  • AppOne not allowed, AppTwo allowed, AppOne and AppTwo unable to use mobile data
  • AppOne allowed, AppTwo allowed, AppOne and AppTwo apps able to use mobile data

As far as I understand, permissions for other apps should not affect other apps' ability to use mobile data. Is this a bug in iOS or have I got something wrong here?

Note: This issue does not occur when I deploy to my phone from Xcode, only when the apps are installed from the App Store.


Solution

  • After talking to Apple Technical Support, I learned that the issue was caused by both apps having the same executable UUID. Apparently the cellular data authorization system uses the executable UUID.

    The solution here is to make sure there is something (source file, build setting, etc.) that is different between different apps.