title: iOS UIBackgroundMode remote-notification doesn't work on 4G
body: <p>I'm testing push notifications with content-available=1, and they don't seem to be delivered to the app in the background unless on Wi-Fi.</p>
  
  <p>I have a simple log statement at the beginning of the push notification handler:</p>
  
  <pre><code>- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
                                                      fetchCompletionHandler:(void (^)   (UIBackgroundFetchResult))completionHandler {
  
      NSLog(@"Notification received: %@", userInfo);
      completionHandler(UIBackgroundFetchResultNewData);
  }
  </code></pre>
  
  <p>Here is my test:</p>
  
  <ol>
  <li>Run the app, then press the home button to put the app in the background.</li>
  <li>Send a push notification with content-available=1</li>
  <li>Watch console logs </li>
  </ol>
  
  <p>On Wi-Fi, the console log shows the notification. If I go to Settings and turn off Wi-Fi, switching to 4G, notifications no longer appear in the log (although they do slide in at the top of the screen, so I know they are being delivered).</p>
  
  <p>There are no crash logs, and the notification is logged if I manually tap on it. Furthermore, this problem does NOT occur if I am debugging the app in Xcode. (i.e., if I am debugging in Xcode, the app will receive the notification in the background on 4G). Has anyone else experienced this behavior? Or am I doing something wrong?</p>
  
  <p><strong>EDIT</strong>:
  To be specific: according to my tests, if the following conditions are true, then the remote notification delegate method above will not be called:</p>
  
  <ol>
  <li>App is running in the background </li>
  <li>Phone is on LTE network, not connected to Wi-Fi</li>
  <li>App is NOT running in the Xcode debugger</li>
  <li>Notification with content-available=1 is received by the phone</li>
  </ol>
  
  <p>However if condition 2 is removed (i.e., the phone is connected to Wi-Fi), then the handler will be called.</p>